faith丶

导航

docker commit命令的使用(用于容器内部修改后,生成新的镜像)

#

docker commit作用

docker commit 命令 : 用于将一个镜像进行提交成一个新的副本

命令格式:
docker   commit -m="描述信息" -a="作者" 容器id 目标镜像名: [TAG]

示例:

查看本地镜像

[root@localhost ~]# docker images 
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
tomcat        9.0       b8e65a4d736d   2 months ago   680MB
tomcat        latest    fb5657adc892   2 months ago   680MB

我们使用Tomcat 9.0 来做测试

做一个端口映射

[root@localhost ~]# docker run -d -p 8080:8080 --name tomcat04 tomcat:9.0 
c9a2f98234c79d94e0ccc67b5a529eace1ec1d2211b1b7088a16a45c62134ae8
[root@localhost ~]# 

浏览器访问

 解决镜像不完整而导致访问找不到文件的问题

# 进入容器
[root@localhost ~]# docker exec -it  c9a2f98234c7     /bin/bash 
root@c9a2f98234c7:/usr/local/tomcat#   

# 复制一下文件到webapps文件夹中
root@c9a2f98234c7:/usr/local/tomcat# cp -r webapps.dist/* webapps
root@c9a2f98234c7:/usr/local/tomcat# cd webapps
root@c9a2f98234c7:/usr/local/tomcat/webapps# ls
ROOT  docs  examples  host-manager  manager
root@c9a2f98234c7:/usr/local/tomcat/webapps# 

复制完文件后浏览器上测试:

通过docker commit操作使得我们修改后的镜像提交成一个新的副本方便下次直接使用

# 查看当前docker进程
[root@localhost ~]# docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS          PORTS                                       NAMES
c9a2f98234c7   tomcat:9.0     "catalina.sh run"        17 minutes ago   Up 17 minutes   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp   tomcat04

# 将上述经过处理的镜像打成一个新的包,变成一个新的整体
[root@localhost ~]# docker commit -a="yh" -m "add a web app" c9a2f98234c7 tomcat04:1.0 
sha256:12b32b1a124d5c1a3572fd0d02542c254192e415aa49045390f15a9a811f0153
[root@localhost ~]# 

再次查看镜像:

[root@localhost ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
tomcat04      1.0       12b32b1a124d   2 minutes ago   685MB
tomcat        9.0       b8e65a4d736d   2 months ago    680MB
tomcat        latest    fb5657adc892   2 months ago    680MB

# 现在tomcat04:1.0就是一个新的镜像了,下次可以直接使用,访问tomcat不会出现404问题了。

 

#

posted on 2024-06-05 11:12  faith丶  阅读(97)  评论(0编辑  收藏  举报