【问题标题】:How to share images between multiple docker hosts?如何在多个 docker 主机之间共享图像?
【发布时间】:2015-03-03 21:05:00
【问题描述】:

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

我们知道,每个 docker 都将图像存储在本地的/var/lib/docker 目录中。

所以如果我想使用一些图像,例如ubuntu,我必须在每个主机上执行docker pull从互联网下载。

我认为它很慢。

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

这是可能的还是好的做法?为什么docker不是这样设计的?

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

【问题讨论】:

    标签: docker dockerhub docker-registry


    【解决方案1】:

    你看过这篇文章吗

    Docker 化 Apt-Cacher-ng 服务

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

    提取

    此容器几乎可以立即对任何包进行第二次下载。

    至少有一个节点会很快,我认为应该可以告诉第二个节点使用第一个节点的缓存。

    编辑:您可以运行自己的注册表,使用类似于

    的命令

    sudo docker run -p 5000:5000 registry

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

    【讨论】:

    • 我认为这是一个 apt 缓存,它缓存了 apk 文件。如果我有很多不同的图像,例如 ubuntu、debian、redhat、centos、wordpress node.js 等,该怎么办?图片这么多,我需要在每台主机上第一次拉取图片。
    • 感谢您的回答。但我认为它仍然浪费磁盘空间。例如,我有 100 台主机和一个 docker-registry,那么每个主机和 docker-registry 必须各有一份副本。有 101 张图片。如果镜像在共享磁盘阵列上,一份就够了。
    【解决方案2】:

    2016.1.25 更新 docker 镜像功能已弃用

    所以这个答案现在不适用,留作参考

    旧信息

    你需要的是docker registry的镜像模式,见https://docs.docker.com/v1.6/articles/registry_mirror/

    直接支持docker-registry

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

    【讨论】:

    • 我看到docker registry,我觉得还是有两个问题: 1)可以避免从互联网下载图片,但仍然需要从本地网络下载。 2) 每台运行 docker daemon 的主机,都需要存储一份镜像。如果可以使用共享磁盘阵列,一份下载随处使用,共享磁盘一份镜像就足够了。
    • 可以像你所说的那样使用,那么你就失去了 docker 的大部分功能。当你更多地为 docker 工作时,你会更喜欢使用 docker registry。
    • docker 也是客户端/服务器模式,可以使用共享文件夹运行一台服务器。
    • @LarryCai 您的链接现在指向404。我建议编辑它:docs.docker.com/registry。需要注意的是镜像registry是not supported anymore
    【解决方案3】:

    您正在尝试做的事情不应该像cpuguy83 在此github/docker issue 所解释的那样工作。

    确实:

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

    分享/var/lib/dockernot enough and won't work

    根据doc.docker.com/registry

    如果您愿意,您应该使用注册表:

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

    所以我想这是(/你的)解决这个问题的最佳选择(但I guess that you got that info——我只是在此处添加它以更新详细信息)。

    祝你好运!

    【讨论】:

      猜你喜欢
      • 2016-12-16
      • 2015-07-29
      • 2017-06-04
      • 2012-04-03
      • 2018-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-31
      相关资源
      最近更新 更多