docker学习-构建镜像-创新互联

对于docker用户来说,最好的情况是不需要自己创建镜像,几乎所有的常用的数据库、中间件、应用软件等都有现成的docker官方镜像或其他人和组织创建的镜像,我们只需要稍微配置就可以直接使用。
但是在某些情况下,也需要自己构建镜像。
比如:
1、找不到现成的镜像,比如自己开发应用程序
2、需要在镜像中加入特定的功能。
docker提供了两种构建镜像的方法:docker commit命令和Dockerfile构建文件。

成都创新互联公司自成立以来,一直致力于为企业提供从网站策划、网站设计、成都网站设计、成都网站制作、外贸网站建设、电子商务、网站推广、网站优化到为企业提供个性化软件开发等基于互联网的全面整合营销服务。公司拥有丰富的网站建设和互联网应用系统开发管理经验、成熟的应用系统解决方案、优秀的网站开发工程师团队及专业的网站设计师团队。

docker commit

docker commit命令式创建镜像最直观的方法,其过程包含3个步骤
1、运行容器
2、修改容器
3、将容器保存为新的镜像
比如: 在Ubuntu base镜像中安装vi并保存为新镜像
(1)运行容器
docker学习-构建镜像
-it 参数的作用式以交互的模式进入容器,并打开终端。
2b1763cc8299就是容器内部的ID
(2)安装vim
确认vim没有安装
docker学习-构建镜像
安装vim,如下所示:
docker学习-构建镜像
(3)保存为新镜像
在新窗口中查看当前运行的容器
docker学习-构建镜像
distracter_chaum是Docker为我们的容器随机分配的名字
执行docker commit命令将容器保存为镜像
docker学习-构建镜像
新镜像命名为ubuntu-with-vim
查看新镜像的属性,如下所示:
docker学习-构建镜像
可以看到新镜像因为安装了vim软件而变大了
从新镜像启动容器,验证vim已经可以使用
docker学习-构建镜像

虽然我们可以使用docker commit创建新镜像,但是docker不建议用户使用这种方式构建镜像。原因如下:
1、该方式是手工创建镜像的方式了,容易出错,效率低可重复性弱
2、无法对镜像进行审计,存在安全隐患

Dockerfile

Dockerfile是一个文本文件,记录了镜像构建的所有步骤

第一个Dockerfile

新建一个文本文件Dockerfile,内容如下:
docker学习-构建镜像
以下为运行docker build命令构建镜像并详细分析细节

[root@docker-1 ~]# docker build -t ubuntu-with-vim-dockerfile .    (1)
Sending build context to Docker daemon  13.31kB                        (2)
Step 1/2 : FROM ubuntu                                                                  (3)
 ---> a2a15febcdf3
Step 2/2 : RUN apt-get update && apt-get install -y vim                   (4)
 ---> Running in ad7fa94cfb94                                                           (5)
Successfully built ad7fa94cfb94                                                         (6)
Successfully tagged ubuntu-with-vim-dockerfile:latest                              (7)

说明:
1、运行docker build命令,-t将新镜像命名为ubuntu-with-vim-dockerfile 命令末尾的.指明build context为当前目录。Docker默认会从build context中查找Dockerfile文件,
也可以通过-f参数指定Dockerfile文件的位置
2、镜像构造过程。首先Docker将build context中的文件发送给Docker daemon,bulid context为镜像构建提供所需要的文件或目标。Dockerfile中的ADD,COPY命令可以将build context中的文件添加到镜像,此例中,bulid context为当前目录.root,该目录下的所有文件和子目录都会被发送给Docker daemon。注意不要将多余文件放到bulid context,特别不要把/,/usr作为bulid context,否则构建过程中会相当的缓慢甚至失败
3、Step1,执行FROM,将Ubuntu作为base镜像,镜像ID为a2a15febcdf3
4、Step2,执行RUN,安装vim
5、启动临时容器,在容器中通过apt-get安装vim
6、安装完成后,将容器保存为镜像,其ID为ad7fa94cfb94
该步骤底层使用类似docker commit的命令
7、镜像构建成功

通过docker images查看镜像信息

docker学习-构建镜像

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


标题名称:docker学习-构建镜像-创新互联
网站链接:http://ybzwz.com/article/iioph.html