如何在多个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
看到
你所要做的是不应该像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
直接支持的
当然,您可以在本地使用公共镜像服务。