Docker跨服务器迁移

本文介绍如何使用Docker的save与export命令迁移镜像和容器。通过具体实例展示了导出与导入的过程,并强调了运行导入容器时的注意事项。

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

Docker的备份方式有export和save两种。

export是当前的状态,针对的是容器,docker save 是针对镜像images。

一、镜像的迁移—save
1.镜像保存
登陆到已经部署好镜像的服务器上面,执行以下命令进行导出
[root@mytest2 local]# docker images 
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
shiyu/centos        tomcat-centos       b61b207a5809        28 minutes ago      1.263 GB
docker.io/centos    latest              2d194b392dd1        7 hours ago         195.4 MB
docker.io/centos    7.3.1611            66ee80d59a68        4 months ago        191.8 MB
[root@mytest2 local]# docker save b61b >mytomcat.tar

2.将镜像导入

将刚才导出的镜像上传到你要导入的那台服务器上
[root@mytest local]# scp  mytomcat.tar 192.168.0.4:/usr/local/
root@192.168.0.4's password: 
mytomcat.tar                                                                                                100% 1228MB  49.1MB/s   00:25

执行以下命令镜像导入
[root@mytest local]# ll mytomcat.tar 
-rw-r--r-- 1 root root 1287580160 Mar  6 16:36 mytomcat.tar
[root@mytest local]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
[root@mytest local]# docker load < mytomcat.tar
b03095563b79: Loading layer [==================================================>]   204 MB/204 MB
1d88d689ca13: Loading layer [==================================================>] 3.584 kB/3.584 kB
a997e4440673: Loading layer [==================================================>]  2.56 kB/2.56 kB
0a3b6c7be500: Loading layer [==================================================>] 309.5 MB/309.5 MB
cee5bf38dfe0: Loading layer [==================================================>] 774.1 MB/774.1 MB
Loaded image ID: sha256:b61b207a5809e56150df90e9c419f838c9a0988828773ef33aa2768e589c19c2kB/774.1 MB
[root@mytest local]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
<none>              <none>              b61b207a5809        About an hour ago   1.263 GB
[root@mytest local]# docker tag b61b mytomcat:2.0
[root@mytest local]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mytomcat            2.0                 b61b207a5809        About an hour ago   1.263 G

二、容器的迁移—export
1.导出容器
[root@mytest2 local]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
8578122af714        b61b                "/bin/sh -c '/usr/loc"   56 minutes ago      Up 56 minutes       0.0.0.0:8090->8088/tcp   naughty_bartik
[root@mytest2 local]# docker export 8578122af714 > mytomcat_export.tar

2.导入到新的服务器上

同样需要将刚才的导出的容器备份上传到目标服务器上,执行下面的命令

[root@mytest local]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
[root@mytest local]# cat mytomcat_export.tar |docker import - centos:tomcat
sha256:b3d5c7409cf020ea3f1ce57865e8e476e878e347963b3da02cab23b1d7464ce2
[root@mytest local]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              tomcat              b3d5c7409cf0        11 seconds ago      1.263 GB

注意:运行导入的镜像的时候必须带command,否则启动报如下错误

[root@mytest ~]# docker run -d -p 8090:8088 b3d5
/usr/bin/docker-current: Error response from daemon: No command specified.
See '/usr/bin/docker-current run --help'.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

雨花石~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值