不同docker容器网络通信


创建一个网卡连接两个容器

要让Docker容器之间跨不同的子网(例如,172.17.0.0/24和172.22.222.0/24)进行通信,您可以使用Docker的网络功能来连接这些容器。这里有一种方法来实现它:

创建自定义的Docker网络:首先,您可以创建一个自定义的Docker网络,这将允许不同子网的容器相互通信。假设您要创建名为"my_custom_network"的网络:

docker network create --driver bridge my_custom_network
  1. 这将创建一个名为"my_custom_network"的自定义网络,该网络可以跨不同的子网进行容器通信。
  2. 启动容器并连接到自定义网络:现在,您可以启动容器并将它们连接到刚刚创建的自定义网络。例如,假设您有两个容器,分别在不同的子网中:

    • 容器A位于172.17.0.0/24子网中。
    • 容器B位于172.22.222.0/24子网中。

    您可以将它们连接到"my_custom_network"网络,以便它们可以相互通信:

# 连接容器A到自定义网络
docker network connect my_custom_network containerA

# 连接容器B到自定义网络
docker network connect my_custom_network containerB

测试容器之间的通信:现在,容器A和容器B都连接到了"my_custom_network"网络,它们应该能够相互通信,无论它们位于不同的子网中。

  • 从容器A访问容器B:您可以使用容器B的容器名称或IP地址从容器A中访问容器B。例如:
# 从容器A访问容器B,使用容器B的容器名称或IP地址
ping containerB

从容器B访问容器A:同样,您可以使用容器A的容器名称或IP地址从容器B中访问容器A。

将一个容器连接到另一个容器所属网络

查看docker网络:docker network ls

将已连接的容器添加到默认网络的桥接口: 使用以下命令将已经连接到默认网络的容器添加safeline-ce网络:(safeline-ce网络为172.22.222.1/24)

docker network connect --ip=172.22.222.10 safeline-ce btserver

防止IP冲突

声明:Hack All Sec的博客|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - 不同docker容器网络通信


Hacker perspective for security