提交Docker容器

docker commit提交容器成为一个新的镜像:

docker commit -m="提交的描述信息" -a="作者" 需要提交的容器ID 镜像名称:TAG

这里以tomcat为例,因为tomcat镜像官方默认在webapp下是没有任何文件的,我们可以启动tomcat后,将webapps.dis下的文件拷贝到webapps以后就可以以这个为基础镜像。
在这里插入图片描述

1、下载镜像

在这里插入图片描述

2、启动容器

docker run -d -it -p 9090:8080 43e421a14aec

在这里插入图片描述
启动完成后,进入容器:

docker exec -it b01a2438c127 /bin/bash

在这里插入图片描述
进入交互界面后,进入tomcat的webapps:
在这里插入图片描述
可以看到里面是空的,这个时候我们访问tomcat如下:
在这里插入图片描述
注意:因为官方的tomcat镜像webapps里面是没有东西的
在tomcat目录下,还有一个webapps.dist目录,将这个目录下的所有文件都拷贝到webapps下:
在这里插入图片描述
我们再访问tomcat:
在这里插入图片描述

3、提交commit

docker commit -m="add webapps app" -a="alinx" b01a2438c127 tomcat:1.0

在这里插入图片描述
查看commit新生成的镜像:
在这里插入图片描述
从图中可以看到,这个镜像比下面的基础镜像大一点,因为我们在基础镜像上层加了webapps操作。
在这里插入图片描述

在这里插入图片描述
这两个图和开头第一个图一样,这就是我们的镜像分层原理。
总结:如果想要保存当前容器的状态,就可以通过commit来提交,获得一个新的镜像,这就好比VM的生成快照。

可以通过 `docker commit` 命令将一个正在运行的 Docker 容器保存为镜像。该命令会捕获容器当前的状态,包括容器中所做的所有更改,并将其打包为一个新的镜像[^1]。以下是具体操作方法: ### 基本语法 ```bash docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] ``` - `CONTAINER`:指定容器的 ID 或名称,可以是运行中或已停止的容器。 - `REPOSITORY`:指定新镜像的名称。 - `TAG`:可选参数,用于标记镜像版本,默认为 `latest`。 ### 常用选项 - `-a` 或 `--author`:设置镜像作者信息。 - `-m` 或 `--message`:提交时添加说明信息。 - `-c` 或 `--change`:在提交容器时应用 Dockerfile 指令,例如修改容器启动命令[^3]。 ### 示例 1. **查看正在运行的容器 ID** ```bash docker ps ``` 输出示例: ``` CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES abcdef123456 busybox "sh" 10 minutes ago Up 10 mins mycontainer ``` 2. **使用 `docker commit` 创建镜像** ```bash docker commit -a "Author Name" -m "Commit message" abcdef123456 myimage:latest ``` 3. **验证镜像是否创建成功** ```bash docker images ``` 4. **运行新镜像生成容器** ```bash docker run -it myimage:latest sh ``` ### 注意事项 - 如果未指定 `REPOSITORY[:TAG]`,新镜像将只有 `IMAGE ID`,可以通过 `docker tag` 命令重新打标签[^2]。 - 提交的镜像默认不会包含容器的运行状态,仅保存文件系统状态和元数据。 - 如果需要导出镜像为 `.tar` 文件,可以使用 `docker save` 命令: ```bash docker save -o myimage.tar myimage:latest ``` 导入镜像则使用: ```bash docker load --input myimage.tar ``` ### 附加功能 - 使用 `-c` 参数可以自定义提交镜像时的配置,例如修改容器启动命令: ```bash docker commit -c 'CMD ["/bin/httpd", "-f", "-p", "80"]' abcdef123456 mywebimage:latest ``` 通过上述方法,可以将容器的状态保存为镜像,并用于后续部署或分发[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alinlx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值