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

网络中有多台主机需要同一镜像文件,而该文件又比较大的时候,逐一拉取是比较麻烦的事情,通过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容器进行导出打包和重命名:

ubuntu@09-1:~$ sudo docker run --name bbs -d maxidea/bbsimon1
1b75fbc1253fb74ca0222b252a8c752db7856b9f94b56e015eae8fcacb23d0a3
ubuntu@09-1:~$ sudo docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
1b75fbc1253f        maxidea/bbsimon1    "sh"                3 seconds ago       Exited (0) 3 seconds ago                       bbs
ubuntu@09-1:~$ sudo docker export -o bbs.tar bbs
ubuntu@09-1:~$ sudo scp bbs.tar ubuntu@192.168.2.26:/tmp/
ubuntu@192.168.2.26's password: 
bbs.tar                                                                                                                100% 1410KB 155.9MB/s   00:00  

导入:

ubuntu@09-2:/tmp$ sudo docker import bbs.tar maxidea/bbsimon1:imp_fr_09-1
sha256:e2d268936d7ecc158081fe572bb6058134d386baa7775e2c8d3b0aa9cc61a196
ubuntu@09-2:/tmp$ sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
maxidea/bbsimon1    imp_fr_09-1         e2d268936d7e        19 seconds ago      1.22MB

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

Last updated