如何在多个docker主机之间共享图像?

时间:2015-01-06 08:12:49

标签: docker dockerhub docker-registry

我有两个主机,每个主机都安装了docker。

众所周知,每个docker都将图像存储在本地/var/lib/docker目录中。

因此,如果我想使用某些图像,例如ubuntu,我必须执行docker pull从每个主机的互联网下载。

我觉得它很慢。

我可以将图像存储在共享磁盘阵列中吗?然后让一些主机拉一次图像,允许每个可以访问共享磁盘的主机直接使用该图像。

是可能的还是好的做法?为什么docker不是这样设计的?

可能需要破解docker的源代码才能实现这一点。

3 个答案:

答案 0 :(得分:0)

你看过这篇文章吗

对Apt-Cacher-ng服务进行Docker化

http://docs.docker.com/examples/apt-cacher-ng/

提取

这个容器几乎可以立即下载任何软件包。

至少有一个节点会非常快,我认为应该告诉第二个节点使用第一个节点的缓存。

编辑:您可以使用类似于

的命令运行自己的注册表

sudo docker run -p 5000:5000 registry

https://github.com/docker/docker-registry

答案 1 :(得分:0)

2016年更新。停靠了Docker镜像功能

因此,此答案现在不适用,请留待参考

旧信息

您需要的是docker注册表的镜像模式,请参阅https://docs.docker.com/v1.6/articles/registry_mirror/

直接从docker-registry

支持

当然,您可以在本地使用公共镜像服务。

答案 2 :(得分:0)

你要做的事情不应该像cpuguy83 github/docker issue所解释的那样工作。

事实上:

  

底层存储驱动程序需要同步访问权限。

分享/var/lib/dockernot enough and won't work

根据doc.docker.com/registry

  

如果您愿意,您应该使用注册表:

     
      
  • 严格控制图像的存储位置
  •   
  • 完全拥有您的图片分发渠道
  •   
  • 将图像存储和分发紧密集成到您的内部开发工作流程中
  •   

所以我想这是(/你)最好的选择(I guess that you got that info - 我只是在这里添加它来更新细节)。

祝你好运!