【问题标题】:Understanding overlay networks in docker了解 docker 中的覆盖网络
【发布时间】:2017-04-09 08:12:14
【问题描述】:

请帮我解决这个问题,

swarm 模式下的覆盖网络允许跨节点容器能够像在同一网络上一样看到彼此。
是对的吗?

如果我有以下设置:

  • 两个相似节点 M(manager)和 W(worker)的 swarm-mode 集群
  • 两个容器CM和CW分别运行在节点M和W上
  • CMdepends_on: - CM:target
  • 两个容器都连接到一个覆盖网络 OVNET

我可以从 CM 发送 ping target 吗?如果不是,为什么?


演示: docker stack deploy -c test.yml test 其中test.yml如下:

version: "3"
services:
  CM:
    image: alpine
    command: sh -c 'ping CW'
    depends_on:
      - CW
    networks:
      - OVNET
    deploy:
      placement:
        constraints:
          - node.role == manager
  CW:
    image: alpine
    command: sh -c 'ping localhost'
    networks:
      - OVNET
    deploy:
      placement:
        constraints:
          - node.role == worker
networks:
  OVNET:
    driver: overlay

提前致谢!

【问题讨论】:

    标签: networking docker docker-swarm docker-swarm-mode


    【解决方案1】:

    是的,它按您的预期工作。首先创建网络,然后根据它们的约束放置容器。我希望 CM 的第一个实例可能会失败,因为 CW 需要时间来提取图像,但之后会正常工作。同一覆盖网络上的容器可以通过内置 DNS 上的服务名称相互通信。

    【讨论】:

    • 我也是这么想的。但是运行那个例子
    • 运行该示例对我来说很好。不适合你吗?
    最近更新 更多