docker基础
01、Docker简介
02、Docker的安装(通过yum安装)
03、Docker安装的问题补充
04、Docker的安装(通过RPM软件包)
05、Docker的安装(通过脚本安装)
06、Docker的卸载
07、Docker配置阿里云镜像加速器
08、Docker中的基本概念和底层原理
09、Docker常用命令(帮助命令)
10、Docker常用命令(镜像命令)
11、Docker常用命令(容器命令01)
12、Docker常用命令(容器命令02)
13、Docker常用命令(容器命令03)
14、Docker安装Nginx
15、Docker图形化管理工具Portainer
16、Docker镜像讲解
17、Docker镜像分层的理解
18、Docker镜像的commit操作
19、Docker容器数据卷介绍
20、Docker容器数据卷的应用
21、Docker中数据卷相关命令
22、Docker数据卷实现MySQL数据持久化
23、DockerFile的方式挂载数据卷
24、Docker数据卷容器的说明与共享数据原理
25、DockerFile文件详解
26、Docker实战:自定义CentOS镜像
27、CMD指令和ENTRYPOINT指令的区别
28、ONBUILD指令介绍
29、COPY指令和ADD指令
30、自定义Tomcat9镜像
31、发布镜像到DockerHub
32、将本地镜像推送到阿里云
33、补充:save和load命令说明
34、Jenkins + Docker + Github 自动部署
本文档使用 MrDoc 发布
-
+
首页
18、Docker镜像的commit操作
### **1、commit命令作用** 在运行的容器中,并在镜像的基础上做了一些修改,我们希望保存起来,封装成一个新的镜像,方便我们以后使用,也就是提交容器副本,使之成为一个新的镜像。 即:**docker commit**,从容器创建一个新的镜像。 例如: 我们以Tomcat镜像为例,运行启动Tomcat镜像后得到Tomcat容器,我们在Tomcat容器中做了一些自定义的设计或者修改,使此时的Tomcat容器成为符合我们需求的容器,之后就可以通过docker commit命令提交生成一个新的Tomcat镜像,也就是生成一个符合我们使用需求的Tomcat镜像,再下次在使用Tomcat容器时,直接使用我们自定义的新Tomcat镜像即可。 ### **2、commit命令说明** 命令格式如下: **docker commit -m="提交的描述信息" -a="作者" 容器ID 要创建的目标镜像名:[标签名]** OPTIONS说明: - -a:提交的镜像作者; - -c:使用Dockerfile指令来创建镜像; - -m:提交时的说明文字; - -p:在commit时,将容器暂停。 ### **3、示例演示** 我们通过示例加深对镜像操作和理解。 **步骤1:查看本地Docker镜像** ```python [root@192 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE centos latest 300e315adb2f 3 months ago 209MB ``` **步骤2:下载Tomcat镜像到本地** ```python [root@192 ~]# docker pull tomcat:9.0 9.0: Pulling from library/tomcat b9a857cbf04d: Pull complete d557ee20540b: Pull complete 3b9ca4f00c2e: Pull complete 667fd949ed93: Pull complete 661d3b55f657: Pull complete 511ef4338a0b: Pull complete a56db448fefe: Pull complete 00612a99c7dc: Pull complete 326f9601c512: Pull complete c547db74f1e1: Pull complete Digest: sha256:94cc18203335e400dbafcd0633f33c53663b1c1012a13bcad58cced9cd9d1305 Status: Downloaded newer image for tomcat:9.0 docker.io/library/tomcat:9.0 [root@192 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE tomcat 9.0 040bdb29ab37 2 months ago 649MB centos latest 300e315adb2f 3 months ago 209MB ``` **步骤3:启动容器** 执行命令:`docker run -it --name tomcat123 -p 8888:8080 tomcat:9.0`(注意该命令最后不要加/bin/bash) (-p用法可以看前面的Docker安装Tomcat容器的练习) 如下图:  提示:-P大P的用法如下:  也可以执行命令:`docker run -d -p 6666: 8080 tomcat:9.0` ,进行Tomcat容器的后台启动。 **步骤4:对Tomcat镜像进行修改** 把Tomcat中webapps.dist目录中的内容,全部拷贝到webapps目录中。 我们在XShell中新建一个窗口,进入Tomcat容器,进行修改。 ```python # 进入Tomcat容器中 [root@192 ~]# docker exec -it tomcat123 /bin/bash root@d60ed0bff852:/usr/local/tomcat# # webapps.dist目录中的内容,全部拷贝到webapps目录中。 root@d60ed0bff852:/usr/local/tomcat# cp -r webapps.dist/* webapps root@d60ed0bff852:/usr/local/tomcat# ls -l webapps total 4 drwxr-xr-x. 3 root root 223 Mar 18 05:02 ROOT drwxr-xr-x. 15 root root 4096 Mar 18 05:02 docs drwxr-xr-x. 7 root root 99 Mar 18 05:02 examples drwxr-xr-x. 6 root root 79 Mar 18 05:02 host-manager drwxr-xr-x. 6 root root 114 Mar 18 05:02 manager ``` **说明:** 因为发现默认Tomcat的webapps目录中是没有应用,这是镜像的原因,官方的镜像默认webapps下面是没有文件的。 所以通过上面的操作,当我们启动Tomcat镜像的时候,就可以访问到Tomcat的欢迎界面了。(具体可看前面的Docker安装Tomcat容器的练习) **步骤5:提交镜像** 将我们操作过的Tomcat容器通过commit提交为一个新的镜像,我们以后就使用我们修改过的镜像即可。 命令如下: `docker commit -m="提交的描述信息" -a="作者" 容器ID 要创建的目标镜像名:[标签名]` 示例: ```python # 退出Tomcat容器 root@d60ed0bff852:/usr/local/tomcat# exit exit # 执行docker commit 提交生成新的tomcat镜像 [root@192 ~]# docker commit -m="add webapps App" -a="sunwukong" d60ed0bff852 tomcat123:1.0 sha256:e42c33552c6c3df7587f254803a0c1b4a686ff78d9f5e28aed0a94a3c91b22a4 [root@192 ~]# # 查看本地Docker镜像 [root@192 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE tomcat123 1.0 e42c33552c6c About a minute ago 653MB tomcat 9.0 040bdb29ab37 2 months ago 649MB centos latest 300e315adb2f 3 months ago 209MB ``` 我们可以看到本地Docker镜像多可以一个tomcat123镜像,且是1.0版本。 也可以发现tomcat123镜像的大小为653MB,比原先的Tomcat镜像649MB多了几兆。 **提示:** `docker commit -m="add webapps App" -a="sunwukong" d60ed0bff852 tomcat123:1.0` 命令的最后`tomcat123:1.0`为自定义的镜像名和版本,也可以在前面加入Namespace的,也就如abc/tomcat123:1.0,这个abc就叫Namespace。你就可以想象于Java中,类前面的包名。我们拉取镜像的时候也经常会看到一些这样命名的包,如用到过的portainer/portainer工具。 **步骤6:启动自定义的Tomcat镜像** 执行命令:`docker run -it -p 8888:8080 tomcat123:1.0` 这里提示一下,如果需要让外部访问容器的服务,一定要进行端口映射。 直接在外部浏览器中访问,如下:  可以直接显示Tomcat服务的欢迎界面。
李智
2025年3月17日 13:22
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码