服务器间镜像文件快速复制

网络中有多台主机需要同一镜像文件,而该文件又比较大的时候,逐一拉取是比较麻烦的事情,通过docker save打包镜像再通过scp传到其他主机是比较方便的,测试如下:

例如mysql镜像文件

mysql                   latest              8e8c6f8dc9df        4 days ago          546MB

使用命令打包:

sudo docker save mysql:latest -o myimg.tar

打包出来的文件通过scp传到另一台主机:

sudo scp myimg.tar ubuntu@192.168.2.26:/tmp/

在另一台主机上执行docker load还原镜像:

ubuntu@09-2:/tmp$ sudo docker load -i myimg.tar 
b60e5c3bcef2: Loading layer [==================================================>]  72.49MB/72.49MB
746ef614d661: Loading layer [==================================================>]  338.4kB/338.4kB
478bf6a73d06: Loading layer [==================================================>]  9.539MB/9.539MB
246ad53299e0: Loading layer [==================================================>]    4.2MB/4.2MB
f2b1703888ed: Loading layer [==================================================>]  1.536kB/1.536kB
c73d9f519696: Loading layer [==================================================>]  53.75MB/53.75MB
c4a52d4531b7: Loading layer [==================================================>]  6.656kB/6.656kB
53e783b27a6d: Loading layer [==================================================>]  3.584kB/3.584kB
ef2a52de3c1a: Loading layer [==================================================>]  411.2MB/411.2MB
73734f098425: Loading layer [==================================================>]  5.632kB/5.632kB
ace58d0dd227: Loading layer [==================================================>]  16.38kB/16.38kB
fe80e859fd88: Loading layer [==================================================>]  1.536kB/1.536kB
Loaded image: mysql:latest

另外,还可以用docker export/import容器进行导出打包和重命名:

导入:

这里可以看出,使用docker import导入的镜像文件,可以进行重命名,而使用docker load的则不行。

Last updated

Was this helpful?