参考源
https://www.bilibili.com/video/BV1og4y1q7M4?spm_id_from=333.999.0.0
https://www.bilibili.com/video/BV1kv411q7Qc?spm_id_from=333.999.0.0
版本
本文章基于 Docker 20.10.11
我们日常拉取的镜像是由别人制作再提交到仓库的。
我们自己也是可以制作镜像并提交的,使用 docker commit
命令。
提交镜像
docker commit
语法
docker commit [参数] 容器 [仓库[:标签]]
参数
-a
:作者信息。一般为 作者名字<邮箱>。-c
:将 Dockerfile 指令应用于创建的映像。-m
:注释信息。-p
:提交期间暂停容器(默认)。
提交自定义镜像
在 Docker 07 部署Tomcat 中,我们将 webapps.dist 中的内容复制到 webapps 下,这样的容器就是我们自定义的了。
将这个容器创建为一个自定义的镜像并提交到仓库中。
[root@sail ~]# docker commit -a="sail<yifansailing@163.com>" -m="diy tomcat by sail" fe247e0ef80d tomcat4sail:1.0
sha256:187a99503046ef1a4316221d174add0fbc92391ac534fb1926e535474491f9d2
[root@sail ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat4sail 1.0 187a99503046 5 seconds ago 684MB
tomcat latest 24207ccc9cce 4 days ago 680MB
可以看到,我们自定义的镜像已经在本地镜像库中了。
测试
停止原有容器。
[root@sail ~]# docker stop fe247e0ef80d
fe247e0ef80d
启动自定义镜像。
[root@sail ~]# docker run -d -p 8080:8080 --name="tomcat4sail" 187a99503046
602c3c576c1b6d13aa0d2508490220d479eaf8c52c9cfe116029c67437fac61b
由于自定义的镜像还没有提交到远程库,所以这里只能使用镜像 ID 启动。
如果使用镜像名启动,会从远程库中进行搜索,由于我们还没有提交,会因为搜索不到报错。
访问测试
这里我们并没有改变容器中 webapps 下的内容,但依然可以直接访问,说明我们自定义的镜像是生效了的。