了解docker中的覆盖networking

请帮我解决这个问题,

群集模式下的覆盖networking允许跨节点容器能够在同一networking上看到对方。
是对的吗?

所以如果我有以下设置:

  • 两个相似节点M(pipe理者)和W(工作者)的群模式群集
  • 在节点M和W上分别运行两个容器CM和CW
  • CM depends_on: - CM:target
  • 两个容器都连接了覆盖networkingOVNET

我能从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 

提前Thnak!

是的,它可以像你期望的那样工作。 首先创buildnetworking,然后根据其约束来放置容器。 我期望CM的第一个实例可能会失败,因为CW需要时间来拉图像,但之后将工作正常。 同一个覆盖networking上的容器可以通过内置DNS的服务名称相互通话。