我有两个主机,每个主机都安装了docker。
众所周知,每个docker都将图像存储在本地/var/lib/docker
目录中。
因此,如果我想使用某些图像,例如ubuntu
,我必须执行docker pull
从每个主机的互联网下载。
我觉得它很慢。
我可以将图像存储在共享磁盘阵列中吗?然后让一些主机拉一次图像,允许每个可以访问共享磁盘的主机直接使用该图像。
是可能的还是好的做法?为什么docker不是这样设计的?
可能需要破解docker的源代码才能实现这一点。
答案 0 :(得分:0)
你看过这篇文章吗
对Apt-Cacher-ng服务进行Docker化
http://docs.docker.com/examples/apt-cacher-ng/
提取
这个容器几乎可以立即下载任何软件包。
至少有一个节点会非常快,我认为应该告诉第二个节点使用第一个节点的缓存。
编辑:您可以使用类似于
的命令运行自己的注册表 sudo docker run -p 5000:5000 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/docker
远not enough and won't work!
如果您愿意,您应该使用注册表:
- 严格控制图像的存储位置
- 完全拥有您的图片分发渠道
- 将图像存储和分发紧密集成到您的内部开发工作流程中
所以我想这是(/你)最好的选择(I guess that you got that info - 我只是在这里添加它来更新细节)。
祝你好运!