如何在多个docker主机之间共享图像?
我有两台主机,每个主机上都安装了docker 我们知道,每个docker都将图像存储在本地如何在多个docker主机之间共享图像?,docker,dockerhub,docker-registry,Docker,Dockerhub,Docker Registry,我有两台主机,每个主机上都安装了docker 我们知道,每个docker都将图像存储在本地/var/lib/docker目录中 因此,如果我想使用一些图像,比如ubuntu,我必须在每个主机上执行docker pull从internet下载 我觉得很慢 我可以将映像存储在共享磁盘阵列中吗?然后让某个主机拉取映像一次,允许访问共享磁盘的每个主机直接使用映像 这是可能的还是良好的做法?为什么docker不是这样设计的 它可能需要破解docker的源代码来实现这一点 你看过这篇文章了吗 将Apt缓存服
/var/lib/docker
目录中
因此,如果我想使用一些图像,比如ubuntu
,我必须在每个主机上执行docker pull
从internet下载
我觉得很慢
我可以将映像存储在共享磁盘阵列中吗?然后让某个主机拉取映像一次,允许访问共享磁盘的每个主机直接使用映像
这是可能的还是良好的做法?为什么docker不是这样设计的
它可能需要破解docker的源代码来实现这一点 你看过这篇文章了吗 将Apt缓存服务对接 提取 这个容器使得任何包的第二次下载几乎是即时的 至少有一个节点会非常快,我认为应该可以告诉第二个节点使用第一个节点的缓存 编辑:您可以使用类似于的命令运行自己的注册表
sudo docker run-p 5000:5000注册表
看
2016.1.25 docker mirror功能更新不推荐使用 因此,这个答案现在不适用,留作参考 旧信息 您需要的是docker注册表的镜像模式,请参阅 直接从
docker注册表支持它
当然,您可以在本地使用公共镜像服务 您试图做的事情不应该像在这里解释的那样起作用
事实上:
底层存储驱动程序需要同步访问
共享/var/lib/docker
太远了
根据报告:
如果您想:
- 严格控制图像的存储位置
- 完全拥有您的图像分发管道
- 将图像存储和分发紧密集成到您的内部开发工作流程中
所以我想这是(/你)解决这个问题的最佳选择(但是--我只是在这里添加它来更新细节)
祝你好运 我认为这是一个apt缓存,它缓存了apk
文件。如果我有很多不同的图片,比如ubuntu、debian、redhat、centos、wordpress node.js等等,会怎么样?这么多的图片,我需要在每个主机上第一次拉图片。谢谢你的回答。但我认为这仍然是对磁盘空间的浪费。例如,我有100个主机和一个docker注册表,那么每个主机和docker注册表中必须各有一个副本。共有101幅图像。如果映像在共享磁盘阵列上,仅一份就足够了。我看到了docker注册表
,我认为仍然存在两个问题:1)它可以避免从internet下载映像,但仍然需要从本地网络下载。2) 每个运行docker守护程序的主机都需要存储一个映像副本。如果可以使用共享磁盘阵列,只需在任何地方下载并使用一次,并且在共享磁盘上复制一个映像就足够了。如果可以按u所述使用,那么您就失去了docker的大部分功能。当你为docker more工作时,你会更喜欢使用docker注册表。docker也是客户机/服务器模式,可以使用共享文件夹运行一台服务器。@LarryCai你的链接现在指向404
。我建议用以下内容编辑它:。必须注意的是,镜像注册表不可用。