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

我有两个主机和docker安装在每个。

正如我们所知,每个docker都将映像存储在本地/var/lib/docker目录中。

所以如果我想使用一些图像,比如ubuntu ,我必须在每台主机上执行docker pull从internet下载。

我觉得这很慢。

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

这是可能的或好的做法? 为什么docker不是这样devise的?

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

你看过这篇文章吗?

Dockerizing Apt-Cacher-ng服务

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

提取

这个容器使得任何包的第二次下载几乎是即时的。

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

编辑:你可以运行你自己的registry,用类似的命令

sudo docker run -p 5000:5000 registry

看到

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

你所要做的是不应该像cpuguy83在这个github / docker 问题上所解释的那样工作。

确实:

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

共享/var/lib/docker远远不够,不会工作 !

根据doc.docker.com/registry :

如果您想要使用registry,您应该:

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

所以我想,这是(/你的)最好的select,以解决这个问题(但我想你得到的信息 – 我只是在这里添加它来更新细节)。

祝你好运!

更新于2016.1.25泊坞窗镜像function已被弃用

所以现在这个答案是不适用的,请参考

旧信息

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

它是从docker-registry直接支持的

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