了解docker中的覆盖网络

时间:2017-04-09 08:12:14

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

请帮我解决这个问题,

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

所以,如果我有以下设置:

  • 两个相似节点M(管理员)和W(工作人员)的群集模式群集
  • 分别在节点M和W上运行的两个容器CM和CW
  • CM depends_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

提前提醒!

1 个答案:

答案 0 :(得分:2)

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