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

如何在多个docker主机之间共享图像?,docker,dockerhub,docker-registry,Docker,Dockerhub,Docker Registry,我有两台主机,每个主机上都安装了docker 我们知道,每个docker都将图像存储在本地/var/lib/docker目录中 因此,如果我想使用一些图像,比如ubuntu,我必须在每个主机上执行docker pull从internet下载 我觉得很慢 我可以将映像存储在共享磁盘阵列中吗?然后让某个主机拉取映像一次,允许访问共享磁盘的每个主机直接使用映像 这是可能的还是良好的做法?为什么docker不是这样设计的 它可能需要破解docker的源代码来实现这一点 你看过这篇文章了吗 将Apt缓存服

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

我们知道,每个docker都将图像存储在本地
/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
。我建议用以下内容编辑它:。必须注意的是,镜像注册表不可用。