Docker 如何提交一个自己的镜像
commit 镜像
docker commit 提交容器成为一个新的副本
# 命令和git原理类似
docker commit -m="提交的描述信息" -a="作者" 容器id 目标镜像名:[tag]
本地测试
# 1、启动一默认的tomcat
[root@liulihui /]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat latest fb5657adc892 11 months ago 680MB
# 交互默认启动
[root@liulihui /]# docker run -it -p 8080:8080 tomcat
# 2、进入容器发现这个默认的tomcat 是没有webapps应用,镜像的原因,官方的镜像默认webapps 下面没有文件的
[root@liulihui /]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8a5d2b1df7a1 tomcat "catalina.sh run" 4 minutes ago Up 4 minutes 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp serene_goldwasser
# 进入容器
[root@liulihui /]# docker exec -it 8a5d2b1df7a1 /bin/bash
root@8a5d2b1df7a1:/usr/local/tomcat# ls
BUILDING.txt CONTRIBUTING.md LICENSE NOTICE README.md RELEASE-NOTES RUNNING.txt bin conf lib logs native-jni-lib temp webapps webapps.dist work
root@8a5d2b1df7a1:/usr/local/tomcat# cd webapps
# 查看基本文件
root@8a5d2b1df7a1:/usr/local/tomcat/webapps# ls
root@8a5d2b1df7a1:/usr/local/tomcat/webapps#
# 3、自己拷贝基本的文件
root@8a5d2b1df7a1:/usr/local/tomcat/webapps# cd ..
# 拷贝基本文件
root@8a5d2b1df7a1:/usr/local/tomcat# cp -r webapps.dist/* webapps
root@8a5d2b1df7a1:/usr/local/tomcat# cd webapps
# 查看文件
root@8a5d2b1df7a1:/usr/local/tomcat/webapps# ls
ROOT docs examples host-manager manager
root@8a5d2b1df7a1:/usr/local/tomcat/webapps#
# 4、将我们拷贝过的容器通过commit提交为一个镜像,以后就使用我们修改过的镜像即可,这就是我们自己的一个修改的镜像
[root@liulihui /]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8a5d2b1df7a1 tomcat "catalina.sh run" 9 minutes ago Up 9 minutes 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp serene_goldwasser
# commit 提交镜像
[root@liulihui /]# docker commit -m="add webapps" -a="liulihui" 8a5d2b1df7a1 tomcat01:1.0
sha256:a640560e53e629406f0d5e7538a527d4d30d253666f650989e62164ec242e927
# 查看镜像 docker images
[root@liulihui /]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat01 1.0 a640560e53e6 11 seconds ago 684MB
nginx latest 605c77e624dd 11 months ago 141MB
tomcat latest fb5657adc892 11 months ago 680MB
centos latest 5d0da3dc9764 14 months ago 231MB
portainer/portainer latest 580c0e4e98b0 20 months ago 79.1MB
elasticsearch 7.6.2 f29a1ee41030 2 years ago 791MB
访问测试:http://ip:8080