了解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的服务名称相互通话。