docker容器连接现有容器网络的网络模式

时间:2021-06-10 13:34:31

标签: docker networking docker-compose containers

您好,能否请您为我下面的问题建议网络模式。

我有 5 个微服务在同一个 Linux 机器上的 5 个 docker 容器上运行,它们正在与 桥接网络

networks:
  bis-bridge:
    name: bis-bridge
    driver: bridge

现在我需要创建一个新容器,该容器可以安装在同一个 Linux 机器上,其中 5 个微服务正在或另一个 Linux 机器在同一网络中运行(用户选项) .我可以使用现有的 'bis-bridge' 网络让新容器连接到现有网络吗?

networks:
  default:
    external: true
    name: bis-bridge

还是需要更改网络模式才能从同一个 Linux 机器/从另一个 Linux 机器连接?

1 个答案:

答案 0 :(得分:0)

在一台机器内,您可以使用外部网络将容器连接到现有堆栈。如果您在新容器下未指定网络或明确使用 default 网络,则第二个代码段应该可以工作。像这样:

version: "3"
networks:
  default:
    external: true
    name: bis-bridge
services:
# both will work
  one:
    image: someimage
  
  two:
    image: someimage
    networks:
      default:

至于从另一台机器(物理或虚拟)加入容器,也可以,但使用另一种网络类型。您需要一个 overlay 网络并且它仅在 swarm 模式下可用。请注意,这不是快速入门,而是从本地部署到编排框架的一步。你必须:

  • 通过将节点连接在一起形成一个集群(即群)。
  • 修改 swarm 的所有服务定义并重新部署旧容器。我猜您希望将旧容器保留在旧节点上,并且没有明确定义您将在集群节点之间随机分布容器。
  • 学习使用 docker servicedocker stack 代替 docker-compose 命令。
  • Administer swarm