一. docker commit方式
1、检查一下已有镜像和容器
docker images
docker ps -a
2、交互式运行centos容器
docker run -it centos
3、运行后发现,官方提供的centos镜像中并没有提供vim工具,这里我们选择对centos镜像增添vim工具,最后生成我们自定义的镜像
安装成功后、退出centos交互式程序
yum install vim
exit
4、使用docker commit 从容器创建一个新的镜像
docker commit a68c0 chanmufeng/centos-vim
二.Dockerfile方式(使用Dockerfile是更推荐的方式,这样可以让使用者更清晰地看到这个镜像的制作细节)
1、创建Dockerfile文件
touch Dockerfile
2、编写Dockerfile文件
FROM centos:7
RUN yum install -y vim
3、使用docker build命令构建
docker build -t chanmufeng/centos-vim2 .
过程解析
docker镜像是只读的,这里为什么能够在centos镜像的基础上进行自定义操作呢?
我们看一下docker的编译过程
第一步、查看是否有centos:7镜像,没有则会下载
重点是第二步
882832c2b8eb其实是在centos:7镜像的基础上生成的一个临时container的id、我们忽略vim的安装过程,跳到最后
最后根据临时生成的container来docker commit
生成镜像文件,最后删除临时container(对照博客开始的图示进行理解)
查看镜像的构建历史