在上一篇中,我们知道了docker是基于联合文件系统的分层镜像。而且也知道了镜像是只读的,容器才是可以写的。那么,如果我们要修改镜像,修改之后,怎么提交呢?本文,凯哥将介绍,docker的提交命令
PS本系列:《Docker学习系列》教程已经发布的内容,凯哥会在文末加上。
命令公式:
docker commit -m=“提交的描述信息” -a="作者" 容器id 要创建的目标镜像名称:[标签名]
演示案例:
那么我们就基于从远程仓库pull下来的Ubuntu。添加vim命令后,重新打一个新的镜像。
docker commit 提交容器副本使其变为一个新的镜像。
20fb6f9e1011608d04d86ef777639f2e.png我们启动原始下载的Ubuntu。使用vim命令如下:
a3ad40caa6523d6afa87866d3e6ede3e.png命令未发现。
安装vim命令:
在docker上执行以下两条命令:
apt-get update
apt-get -y install vim
d1a881c94b0c2bced0dc607116af53ec.png需要注意
1:上面两条命令都是在容器内部执行的(因为我们是要扩展容器功能的)
2:apt-get 这两个是连接在一起的。
执行完vim后。我们试试此命令是否可以正常使用:
8b625691ef0707cfd4f895a950192427.png说明vim已经安装成功了。
在docker宿主机使用命令公式:
docker commit -m"提交的描述信息" - a"作者" 容器id 要创建的目标镜像名:[标签名]
96da9360638864a19ea46af63628ff7b.png注意其中的:50dba2e06051是通过docker ps获取到的
03944466a789dcdb1b9cd2fe83f95471.pngdocker commit之后,我们在通过 docker images命令查看当前宿主机上有多少个镜像:
f268e984166f97a8540baa461a460223.png我们可以看到原来Ubuntu大小是72.8M。当我们添加了vim后的镜像是179M了。说明,我们添加了vim的镜像制作成功了。
启动新镜像,和原来镜像对比:新的镜像支持vim命令。
总结:
Docker中的镜像分层,支持通过扩展现有的镜像,创建新的镜像。类似于我们Java中的类继承与一个Base的基础类,自己在按照自己需要来扩展一样。新的镜像是从base镜像一层一层叠加生成的,每安装一个软件,就在现有的镜像的基础上增加一层。
3a46c96c9dd8fd7958ff4de9fe648759.png直通车,本系列教程已发布文章,快速到达,《Docker学习系列》教程已经发布的内容如下:
【图文教程】Windows11下安装Docker Desktop
【填坑】在windows系统下安装Docker Desktop后迁移镜像位置
【Docker学习系列】Docker学习1-docker安装
【Docker学习系列】Docker学习2-docker设置镜像加速器
【Docker学习系列】Docker学习3-docker的run命令干了什么?docker为什么比虚拟机快?
【Docker学习系列】Docker学习2-常用命令之启动命令和镜像命令
【Docker学习系列】Docker学习系列3:常用命令之容器命令
【Docker学习系列】Docker学习4-常用命令之重要的容器命令
网友评论