制作docker images -- Dockerfile

使用DOCKERFILE,制作docker镜像

  • 制作docker镜像

    • 可以制作自己需要的镜像
    • 可以将镜像导入其他环境中的docker,方便移植
  • docker执行方式

    • 以服务的形式启动,容易以服务的形式运行,通过docker ps -a 查看

      docker run --detach \
         --publish 49080:8080 --publish 50000:50000 \
         --name jenkins \
         --volume /Volumes/disk2/workspace/docker/jenkins:/var/jenkins_home\
         jenkins:latest
    • 以命令的形式启动,执行后销毁容器

      docker run -it --rm --name my-running-script \
         -v /Volumes/disk2/workspace/git/python/tws-alert:/usr/src/myapp \
         -w /usr/src/myapp centos-py:0.0.1 python \
         -m TwsAlert.workflowPredict --factor 9 --mark 3 --multi 4

docker image 制作过程

以python image制作为例

  • 基础镜像:centos7.1
  • 目录结构
    .
    └── python
    ├── Dockerfile
    ├── get-pip.py
    ├── myapp
    │ └── test.py
    └── requirements.txt

  • 其中,python为主目录,Dockerfile在该目录下,内容如下

    FROM centos:7   # 基础镜像
    
    
    # 为镜像安装必要的依赖包
    
    RUN yum -y install gcc
    RUN yum -y install gcc-c++
    RUN yum -y install python-devel
    RUN yum -y install cyrus-sasl-devel
    RUN yum -y install mysql-devel
    
    # 从本地将pip安装文件copy到docker容器中
    
    COPY get-pip.py ./
    
    # 安装最新版本pip
    
    RUN python get-pip.py
    
    # 将本地python库需求列表copy到docker容器中
    
    COPY requirements.txt ./
    
    # 安装python库
    
    RUN pip install -r requirements.txt
    
    # 指定此image的工作路径,python程序将映射到此路径下
    
    WORKDIR /usr/src/app
    
    # 指定容器可执行命令为python
    
    CMD [ "python" ] 
  • 在python目录下执行命令,创建docker image

    sudo docker build -t centos-py:0.0.1 .
  • 执行成功后,可通过docker images命令查看images

    chqiang-fdeMacBook-Air:docker chqiang_f$ docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    centos-py           0.0.1               8fdb3bed4d46        2 weeks ago         915MB
  • 可以通过以下命令查看image是否可用

    chqiang-fdeMacBook-Air:docker chqiang_f$ docker run -it --rm --name my-running-script -v /Users/chqiang_f/work/docker/python/myapp:/usr/src/myapp -w /usr/src/myapp centos-py:0.0.1 python
    Python 2.7.5 (default, Jul 13 2018, 13:06:57) 
    [GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import pandas
    >>> 

你可能感兴趣的:(虚拟化技术,docker)