在Docker守护进程之间共享映像

在Docker守护进程之间共享映像,docker,Docker,我正在研究一个生产架构,并一直在思考一些关于使用Docker设计解决方案的问题 是否有为docker守护进程提供HA的方法 如果我需要在存在于不同主机中的两个守护进程之间共享映像缓存?是否可以使用docker而不将图像推送到docker hub,然后再将其拉出 你也不能这样做 特别是在集群环境(如Kubernetes)中,Docker映像注册表几乎是必需的。一个典型的模型是,一个新节点启动时没有图像,但由于它需要运行各种事情,它会自己拉它们。(如果愿意,注册表是共享缓存;它不需要特别指定为Doc

我正在研究一个生产架构,并一直在思考一些关于使用Docker设计解决方案的问题

  • 是否有为docker守护进程提供HA的方法
  • 如果我需要在存在于不同主机中的两个守护进程之间共享映像缓存?是否可以使用docker而不将图像推送到docker hub,然后再将其拉出
  • 你也不能这样做

    特别是在集群环境(如Kubernetes)中,Docker映像注册表几乎是必需的。一个典型的模型是,一个新节点启动时没有图像,但由于它需要运行各种事情,它会自己拉它们。(如果愿意,注册表是共享缓存;它不需要特别指定为Docker Hub。)。群集管理器通常会为您管理此功能

    Docker守护进程被视为系统软件,您通常不会像运行多个cron或ssh守护进程那样尝试运行它的多个副本。根据我的经验,守护进程本身相当可靠;如果出现问题,通常是因为映像/容器存储已损坏


    我熟悉的生产容器系统的一般模型假设所有的基础设施都是一次性的。如果容器崩溃,请删除并重新创建它;如果云托管节点上的Docker守护进程死亡,请删除并重新创建它;等等如果您正在运行多个节点和关键部分(如注册表)的多个副本,这将为您提供相当可靠的HA配置。一个重要的要求是,任何数据都不能存储在您可能会自动删除和重新创建的任何位置:容器文件系统中绝对没有任何数据,也可能没有任何内容直接存储在主机文件系统上。

    令人敬畏的解释-所有基础设施都是一次性的,尤其是容器系统。我假设共享缓存已超过守护进程的生存期,或者如果守护进程因任何原因关闭,它将被删除?如果Docker守护进程重新启动,本地下载到该系统的任何图像仍将存在。共享Docker注册表中的任何内容都应该永久存在。