问题:A,B两台服务器,都是docker部署的程序,A服务器的a1服务无法访问B服务器的b1服务(b1服务部署到A服务器的话可以访问),问题,docker容器内无法访问除宿主机外的局域网里的服务器?
解决办法:
这个其实应该非常少碰到,我碰到了算是巧合,因为默认的系统参数其实是不会出现这种情况的。
两种可能的原因会造成Docker容器内无法访问外部网络:
- 容器使用了桥接网络但防火墙屏蔽了通信
-
/etc/
系统配置参数问题
我碰到的情况属于第二种,配置参数问题,修正方法:
- 编辑
/etc/
- 将其中的
net.ipv4.ip_forward=0
改成net.ipv4.ip_forward=1
。 - 重载配置,之后Docker的容器即可正常通信,如果不行,restart下容器。
sysctl -p