networking - 了解 docker 中的覆盖网络

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

请帮我解决这个问题,

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

所以如果我有以下设置:

  • 两个相似节点 M(经理)和 W( worker )的群模式集群
  • 两个容器CM和CW分别运行在节点M和W上
  • CM depends_on: - CM:target
  • 两个容器都连接到覆盖网络 OVNET

我能从 CM ping target 吗?如果不是,为什么?


演示: docker stack deploy -c test.yml 测试 其中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

提前致谢!

最佳答案

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

关于networking - 了解 docker 中的覆盖网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43304521/

相关文章:

java - Netty 绑定(bind)到错误的接口(interface)

C# 网络打印

docker - 如何使用 Jenkins docker-swarm-plugin 使用 docker image jenkins/jnlp-slave(传递代理名称)

docker - Docker Windows容器DNS缓存和防火墙

docker - 提供更深入的群体节点相关指标

c++ - Qt 和 LibEvent 中信号和槽的区别

networking - QuickFix/n 出现 Stunnel "Peer suddenly disconnected"错误

docker - 如何配置docker来避开特定地址或子网?

docker - Docker中的Go Lang 1.8服务器未在给定端口上监听

新 docker 容器上的 java.lang.ClassNotFoundException : Unable to load class: com. microsoft.sqlserver.jdbc.SQLServerDriver