- 将正在运行的容器保存成镜像:
先找到正在运行的容器 ID 或名称:
docker ps
然后使用 docker commit 将容器保存成镜像:
docker commit <容器ID或名称> <新镜像名称>:<标签>
例如,将容器 mycontainer 保存成镜像 myimage:latest:
docker commit mycontainer myimage:latest
- 保存镜像到本地文件:
使用 docker save 命令将镜像导出成 .tar 文件:
docker save -o <路径/文件名.tar> <镜像名称>:<标签>
例如:
docker save -o myimage.tar myimage:latest
- 下载/传输镜像:
将生成的 .tar 文件通过 scp、rsync 或其他传输工具下载到本地计算机。 - 在其他系统中加载镜像:
使用 docker load 命令导入镜像:
docker load -i <路径/文件名.tar>
例如:
docker load -i myimage.tar
这样,你就可以将正在运行的容器保存为镜像并下载到本地。
要保存正在运行容器的运行参数(例如环境变量、端口映射、卷挂载、启动命令等),你可以使用以下方法:
- 使用 docker inspect 命令:
docker inspect 可以查看容器的详细配置和运行参数。使用以下命令获取容器的所有信息并保存到文件中:
docker inspect <容器ID或名称> > container-config.json
这样会生成一个 JSON 文件,其中包含该容器的所有配置信息。
- 从 docker inspect 输出中提取特定参数:
如果你只需要特定的参数,可以结合 jq(一个 JSON 解析工具)来提取特定信息。例如:
docker inspect <容器ID或名称> | jq ‘.[0].Config.Env’
上述命令会提取容器的环境变量。你可以根据需要修改键值来获取其他信息,例如端口、卷等。
- 使用 docker run 重建容器:
通过 docker inspect 获取的信息,可以编写一个完整的 docker run 命令,以便在以后重新创建容器。例如,提取容器的 Cmd 和 Env 并重新组织为 docker run 参数:
docker inspect <容器ID或名称> | jq ‘.[0].Config.Cmd’
docker inspect <容器ID或名称> | jq ‘.[0].Config.Env’
然后,你可以手动组合这些参数,例如:
docker run -d -e VAR1=value1 -e VAR2=value2 -p 8080:80 –name mycontainer myimage:latest
- 使用 docker export 和 docker import:
如果你想保存容器的文件系统及其状态,可以使用 docker export 和 docker import:
docker export <容器ID或名称> -o container.tar
然后在需要时重新导入:
cat container.tar | docker import – myimage:latest
注意:docker export 仅保存文件系统,不包含运行时参数(如端口映射、环境变量)。因此,推荐用 docker inspect 来保存和记录参数。
发表回复