前面我们讲解了Docker Hub上的镜像是基于Dockerfile文件,那我们可不可以自己构建镜像?怎样构建镜像?
实际上镜像的构建有三种方法:
(1)基于运行的容器状态生成新的镜像,即docker commit
(2)基于Dockerfile构建镜像,即docker build
(3)利用Docker Hub自动构建镜像
本节我们将讲解第一种方法。
之前我们已经知道要运行容器就需要使用镜像,显然使用现成的镜像(无论是从Docker Hub还是从别人处获取)在方便不过了。但是实际工作中,现成的镜像往往不能完全满足我们的需求。例如官方的Ubuntu镜像就没有提供ssh的功能。那这个时候就需要我们基于已有的镜像去构建新的镜像。Docker提供的docker commit命令很好的实现了这一功能,其过程可以总结为:
基于已有的镜像运行容器;
进入容器修改容器;
利用docker commit生成新的镜像。
下面,我们以Ubuntu镜像为例演示如何构建新的镜像。
进入容器,bc50d965d081为容器短ID
查询ssh服务
更新源
安装openssh-server包
基于容器名或容器ID使用docker commit生成新的镜像
查询本地新的镜像ubuntu-ssh
新的镜像大小变为205M,比原来大了将近100M,原因在安装openssh-server时安装了很多依赖包。
验证新的镜像是否安装了ssh服务
以上就是利用docker commit构建镜像的完整过程。下一节,我们将讲解另一种构建镜像的方法:基于Dockerfile的docker build命令。
领取专属 10元无门槛券
私享最新 技术干货