【问题标题】:Docker, communicating between hosts on different bridgesDocker,在不同网桥上的主机之间进行通信
【发布时间】:2017-04-29 14:29:00
【问题描述】:

我的情况:

  • 我在默认桥接网络 (172.17.0.1/16) 上有一个容器 (container_A)
  • 我在另一个网桥 (172.18.0.1/16) 上有一组容器(通过 docker-compose 创建)。其中一个名为 container_B_1 (ip: 172.18.0.2)

默认情况下,我无法从 container_A ping 到 container_B_1

问题:如何使该特定容器(container_B_1)也可以从默认桥接网络访问?换句话说:让它拥有 172.17.0.x IP(在 172.18.0.x IP 旁边)。只有一个容器。

我已经在我的 docker-compose.yml 中尝试过这个

但是,出现错误:“仅用户定义网络中的容器支持网络范围别名”

谢谢!

【问题讨论】:

    标签: docker docker-compose docker-networking


    【解决方案1】:

    您可以创建自己的网络并在您的撰写文件中指定它:

    • 创建您自己的网络: docker network create --driver bridge my_dev_network 您可以通过docker network ls

    • 进行验证
    • 在两个容器(容器 A)和另一组容器的 docker-compose.yml 中,指定您刚刚创建的网络:

    您可以通过docker network inspect my_dev_network 验证是否所有容器都已加入您自己的网络

    【讨论】:

      【解决方案2】:

      为了保持相同的IP系列,我遇到了同样的问题,并找到了这个解决方案。

      包括 network_mode: bridge 在撰写文件中的每个服务下。

      这样您就不必创建自定义网络。

      【讨论】:

        【解决方案3】:

        在这里找到答案:https://github.com/docker/compose/issues/3012

        来自 ninchan8328 于 2016 年 5 月 16 日评论:

        我发现,我可以让 docker-compose 在自定义网络中启动容器,然后执行 docker network connect bridge [container] 以通过这种方式加入默认网络。

        【讨论】:

          猜你喜欢
          • 2016-07-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-12-18
          • 1970-01-01
          • 2015-08-13
          • 2018-09-07
          相关资源
          最近更新 更多