Skip to content

Instantly share code, notes, and snippets.

@banyudu
Last active November 13, 2020 09:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save banyudu/2f6c57bb7842bdede5d3ca4100dd6fa6 to your computer and use it in GitHub Desktop.
Save banyudu/2f6c57bb7842bdede5d3ca4100dd6fa6 to your computer and use it in GitHub Desktop.
在不同的主机中同步Docker镜像

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

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

docker pull mygroup/myimage

即可。

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

{
  "registry-mirrors": [
    "https://hub-mirror.c.163.com"
  ]
}

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

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

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

这样就大功告成了!

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment