在 Docker 中,如果你修改了一个容器的内容并希望将这些更改保存为一个新的镜像,可以按照以下步骤进行:
docker version: 26.1
1. 确保容器运行
首先,确保你正在修改的容器是运行中的。如果容器已经停止,你需要启动它:
docker start <container_id>
2. 进入容器并进行修改(如果尚未修改)
你可以使用 docker exec 命令进入运行中的容器并进行所需的修改。例如,进入容器并使用 shell:
docker exec -it <container_id> /bin/bash
在容器中完成所需的更改(如安装软件、修改配置文件等)。
3. 生成镜像
提交容器生成镜像
1. 提交镜像
完成修改后,你需要将这些更改提交为一个新的镜像。使用 docker commit 命令来完成这一操作:
docker commit <container_id> <new_image_name>:<tag>
<container_id>:你的容器的 ID 或名称。
<new_image_name>:你想为新镜像指定的名称。
例如,提交容器 my_container 为名为 my_new_image 的新镜像,并标记为 v1.0:
docker commit my_container my_new_image:v1.0
2. 验证新镜像
你可以使用 docker images 命令来验证新镜像是否创建成功:
docker images
3. 使用新镜像
现在,你可以使用新的镜像来创建新的容器:
docker run -d <new_image_name>:<tag>
例如,使用之前创建的镜像 my_new_image:v1.0:
docker run -d my_new_image:v1.0
容器直接导出镜像
1 确定容器
如图所示,我们使用容器id为df8c的容器导出,对应的命令为:
docker export -o file_name.tar df8cae66ae57
其中,file_name 为自定义的名字。
2 验证镜像并使用
将镜像再次导入docker import file_name.tar image_name:tag
其中file_name为对应的名字,image_name为镜像的名字,tag对应版本信息。
docker run -itd --name=docker_name --gpus "device=0" --shm-size=16g -p 7112:7100 --restart=always --privileged -v /tmp:/tmp image_name:tag /bin/bash -c "bash
其中,docker_name为对应的容器的名字,image_name为对应的镜像的名字,tag为版本信息。
总结
修改容器:可以进入容器并进行所需的修改。
提交为镜像:使用 docker commit 将修改提交为新的镜像。
验证和使用:检查新镜像并使用它来创建新容器。