不同network中的两个docker容器

1. 创建docker网络
    docker network create --subnet 172.18.0.1/16 test
    docker network ls

2.  创建两个容器指定docker network
     docker run -ti --net=test --name test centos /bin/bash
     docker run -ti  --name test1 centos /bin/bash

3. 通过iptables打通两个网络
    iptables -I DOCKER-USER -i docker0 -o br-2b3f3e35bd80 -j ACCEPT
    iptables -I DOCKER-USER -o docker0 -i br-2b3f3e35bd80 -j ACCEPT

4. 进入容器中执行ping
    ping 172.17.0.2

                      

5. 允许特定ip能够访问
    iptables -I DOCKER-USER -i docker0 -o br-2b3f3e35bd80 -s 172.17.0.2 -d 172.18.0.2 -j ACCEPT
    iptables -I DOCKER-USER -i br-2b3f3e35bd80 -o docker0 -s 172.18.0.2 -d 172.17.0.2
6. 解决方案2:将一个容器连接到另一个网络。

7. 解决方案3:创建第三个网络并将两个容器插入此网络
    使用docker network connect将容器加入第三个网络中
    docker network connect test(网络) test1(容器)
    docker network inspect test:查看test网络信息

8. 方案1:增加DOCKER-USER的数据链
    iptables -t filter -vL
    将规则添加到DOCKER-USER链以允许不同网络之间的通信
    第三步:使用ifconfig,ip a查看网络接口,增加iptables规则

              

  

原文地址:https://www.cnblogs.com/The-day-of-the-wind/p/12882917.html