【问题标题】:How volumes are shared across Docker Swarm nodes?卷是如何在 Docker Swarm 节点之间共享的?
【发布时间】:2017-12-29 11:20:21
【问题描述】:

所以我开始使用 docker 和 docker swarm,现在我想知道如何在 docker swarm 节点之间共享卷。

让我们以 Postgres 数据库为例,我为数据声明了一个卷:

docker-compose.yml:

...
  db:
    image: postgres:9.4-alpine
    volumes:
      - db-data:/var/lib/postgresql/data
    deploy:
      placement:
        constraints: [node.role == manager]
 ...

如果我的经理在世界不同地区很远的地方,并且他们需要在他们之间共享数据怎么办?

Docker 如何对此进行操作?

【问题讨论】:

    标签: docker docker-compose microservices docker-swarm


    【解决方案1】:

    起初,创建一个由不同区域组成的 Swarm 集群是很困难的,在某些时候,甚至不可能,因为不同区域(或云供应商)的 TCP 端口可能不允许通过 Internet 相互连接,这是设置 Swarm 的基本要求。

    就共享数据而言,您可以选择不同的选项。例如,您可以通过卷插件挂载和存储在 Docker 容器中使用 Azure 文件存储或 AWS EFS\EBS,最终在集群(分布式文件系统)中的管理器和工作人员之间共享,您可以使用像 Flocker 这样的卷编排器卷插件或设置您自己的 NFS。

    【讨论】:

    • 所以基本上 docker 中没有事实上的驱动程序允许在节点之间共享卷?假设我有 1 个服务和 1 个容器,通过杀死一个节点,容器将与另一个节点一起启动,卷会发生什么?会是空的吗??
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-10
    • 2019-10-26
    相关资源
    最近更新 更多