Docker:镜像的迁移

本文介绍了如何使用Dockersave和dockerexport两种方法将Docker镜像从一台机器迁移到另一台机器的过程,并演示了如何从备份恢复镜像。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

从202将现有镜像搬到207的过程。

先说导出,两种方法:Docker save 和 docker export,前者保存镜像,后者导出容器。

docker save docker.io/java:7-jre > img_java_7_jre.tar

而导出容器则需要先启动一个容器。

docker run -it docker.io/java:7-jre
docker export 7e8a0dc1cb88 > java_7_jre.tar

注意,这里的 7e8a0dc1cb88是容器的ID。
然后我们会得到两个tar文件,大小略有不同,一个来自镜像的备份,一个来自容器的备份。

-rw-r--r--. 1  354796032 3月  25 09:10 img_java_7_jre.tar
-rw-r--r--. 1  350644224 3月  25 09:09 java_7_jre.tar

这里我们可以重新命名了,原来202上的名字太罗嗦了。
测试一下,执行时会发现报错,必须加上入口命令才能运行。

# docker run -it java:7-jre
Error response from daemon: No command specified
# docker run -it java:7-jre /bin/bash
root@5ce0c4d8c896:/# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@5ce0c4d8c896:/# java -version
java version "1.7.0_95"
OpenJDK Runtime Environment (IcedTea 2.6.4) (7u95-2.6.4-1~deb8u1)
OpenJDK 64-Bit Server VM (build 24.95-b01, mixed mode)
root@5ce0c4d8c896:/#
root@5ce0c4d8c896:/#
root@5ce0c4d8c896:/# exit
exit

与我们原来的行为略有不同。

再试一下从镜像备份的恢复,先把刚才启动的这个容器删除,再加载备份即可。

docker rm -f 5ce0c4d8c
docker load < img_java_7_jre.tar

现在用 docker images 就可以看到新的镜像了。
同样执行一下,会发现它带有一个入口。

# docker run -it java:7-jre
root@f6feabb7ebb7:/# 

转载于:https://www.cnblogs.com/MarchThree/p/6352164.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值