不同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规则