背景:使用docker network create 命令创建了一个新的桥(docker1,子网地址为172.26.0.0/16,网关是172.26.0.1),然后启动容器b1连接到docker1上。docker默认的桥bridge(也就是docker0,子网地址为10.0.0.0/16,默认网关为10.0.0.1),然后启动容器b2连接到docker0上,示意图如下所示:

docker中不同network容器之间互相通信

在容器b1和容器b2中分别ping对方的ip,发现无法通信。

解决办法:

使用iptables -t filter -nvL查看iptables中DOCKER-ISOLATION链的规则,发现在在docket0和docket1之间的策略是DROP,即拒绝,因此可以通过修改相应的规则

iptables -I DOCKER-ISOLATION -i docker0 -o docker1 -j ACCEPT

iptables -I DOCKER-ISOLATION -o docker0 -i docker1 -j ACCEPT

这样再次进入容器b1和b2中,发现可以进行通信了

docker中不同network容器之间互相通信

 

相关文章:

  • 2021-10-14
  • 2022-12-23
  • 2021-05-12
  • 2021-04-26
  • 2021-04-10
  • 2021-07-22
  • 2021-08-27
猜你喜欢
  • 2022-12-23
  • 2022-01-06
  • 2021-10-05
  • 2021-12-12
  • 2021-12-09
  • 2021-07-16
  • 2019-10-18
相关资源
相似解决方案