zoukankan      html  css  js  c++  java
  • 创建docker镜像的两种方式


    1. docker commit方式
    检查一下已有镜像和容器
    docker images

    docker container ls
     


    这里我们选择对centos进行自定义镜像

    交互式运行centos容器
    docker run -it centos

    由此我们进入了centos容器 
     
    运行后发现,官方提供的centos镜像中并没有提供vim工具,这里我们选择对centos镜像增添vim工具,最后生成我们自定义的镜像 


    centos容器中安装vim工具
    yum install vim
     


    vim安装成功

    退出centos交互式程序
    exit
     


    现在我们就有了一个经过我们自定义的container 


    根据自定义的centos容器生成image
    docker commit dockerid XXXXX/centos-vim

    现在我们就有了安装了vim之后的centos镜像 


    自定义镜像和原始镜像之间的关系


    2. Dockerfile创建镜像
    使用Dockerfile是更推荐的方式,这样可以让使用者更清晰地看到这个镜像的制作细节

    创建对应的目录
    mkdir centos-vim

    编写Dockerfile文件
    FROM centos:7
    RUN yum install -y vim


    docker build
    docker build -t XXXXX/centos-vim2 .
     


    过程解析
    docker镜像是只读的,这里为什么能够在centos镜像的基础上进行自定义操作呢? 
    我们看一下docker的编译过程 
     
    编译的第一步(绿色边框)会复用之前已经存在的centos:7 
    重点是第二步 
    882832c2b8eb其实是在centos:7镜像的基础上生成的一个临时container的id 
    我们忽略vim的安装过程,跳到最后 
     
    最后根据临时生成的container来docker commit 生成镜像文件,最后删除临时container

  • 相关阅读:
    POJ 3268 Silver Cow Party (Dijkstra)
    怒学三算法 POJ 2387 Til the Cows Come Home (Bellman_Ford || Dijkstra || SPFA)
    CF Amr and Music (贪心)
    CF Amr and Pins (数学)
    POJ 3253 Fence Repair (贪心)
    POJ 3069 Saruman's Army(贪心)
    POJ 3617 Best Cow Line (贪心)
    CF Anya and Ghosts (贪心)
    CF Fox And Names (拓扑排序)
    mysql8.0的新特性
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13317386.html
Copyright © 2011-2022 走看看