本帖最后由 不懂就问 于 2020-3-21 22:08 编辑
一、知识回顾
上文和大家分享了容器镜像的基本结构,我们了解到容器镜像的分层结构和COW特性,今天我们来学习一下如何构建一个自己的容器镜像。 二、使用场景 大家在公有云上使用云主机时,经常发现云主机申请完毕后,没有一些常用的软件,于是我们就把经常用到的软件在云主机内安装好,再转成镜像,下次用自己制作的镜像申请云主机时,就不用重复安装软件了。 容器镜像构建也是基于这个思路,docker hub上提供了很多的base image,我们可以在base镜像的基础上,构建私有容器镜像。如果你认为自己构建的容器镜像质量还不错,对其他人帮助很大,可以将私有镜像push到docker hub,供其他人下载使用。 三、方式一:docker commit构建镜像 【功能说明】 可以将一个运行中的容器保存为镜像,背后实现逻辑:容器运行起来后,将容器最上层的可读写层和下面的只读层,打包组成一个新的镜像。 操作思路: 1、运行一个容器 2、自定义容器,修改容器内容 3、将容器保存为镜像 【操作演示】 1、运行一个容器:在后台运行一个nginx容器,取名为nginx-0321,并映射到宿主机8080端口。在操作pc电脑上可以通过IP:8080访问容器。 2、自定义容器:进入容器,修改回显内容为“Welconme Sangfor Cloud” 3、将运行的容器保存为镜像,镜像名称为nginx0321-v1 4、比较镜像nginx和镜像nginx0321-v1,可以发现后者多了一个镜像层。 四、方式二:dockerfile构建镜像 【功能说明】 DockerFile是文件指令集,描述如何自动创建Docker镜像。它包含若干指令的文本文件,可以通过这些指令创建出dokcer image。 Dockerfile文件中的指令执行后,会创建一个个新的镜像层。 Dockerfile一般由4部分组成: 镜像操作指令,操作指令不同,可以构建出不同的容器镜像。
【操作思路】 【操作演示】 1、创建dockerfile文件:在/root/dockerfile路径下新建名为dockerfile-0321的dockerfile文件 2、vi编辑文件: 3、构建镜像,将dockerfile-0321文件构建名为httpd-0321的镜像 4、以新构建的镜像运行一个容器 |