logo

鱼肚的博客

Don't Repeat Yourself

在不同的主机中同步Docker镜像

Docker镜像拉取原来是一个挺简单的事,直接

1docker pull mygroup/myimage

即可。

但是因为众所周知的原因,docker pull的速度比较感人。这个时候一般我们会选择设置Docker daemon中的registry列表,换成国内镜像,如修改/etc/docker/daemon.json的内容:

1{
2  "registry-mirrors": [
3    "https://hub-mirror.c.163.com"
4  ]
5}

然而,有的时候这些国内的镜像也表现不佳。而此时手头上有其它机器带有需要的镜像,所以想到在局域网中做同步。

搜索了下,这种方式是可行的,步骤如下:

  1. 在含有此镜像的机器中,使用 docker save mygroup/myimage -o mygroup-myimage.tar 的方式保存镜像到tar包中
  2. 通过scp命令同步tar文件到目标机器,当然用其它方式复制也行
  3. 最后在目标机器上加载打包好的tar文件 docker load -i mygroup-myimage.tar

这样就大功告成了!

最后,如果实在没有可同步的机器,手头又有Dockerfile的话,考虑下使用Dockerfile重新构建,也是一种路子。