容器无法访问容器宿主机外部网络
现象是A机器上的容器无法访问B机器
查看docker网络
com.docker.network.bridge.enable_ip_masquerade值为false.
enable_ip_masquerade:是否开启ip伪装
IP伪装,是Linux系统的一种网络功能,如果一台Linux主机使用IP伪装功能连接到互联网上,那么其他计算机,不论是在同一个局域网上还是通过调制解调器连接,只要连接到这个Linux主机上,就可以与国际互联网相连,即使它们没有获得正式指定的IP地址。这样就可以将一些计算机隐藏在网关后面连接互联网,而不被发现,看起来就像只有一台Linux系统主机与互联网相连。它允许用户扩展IP地址,允许没有注册IP地址的计算机经由Linux主机连接到互联网上。
docker默认配置文件在/etc/docker/daemon.json
删除配置文件中com.docker.network.bridge.enable_ip_masquerade等于false的设置(默认为true)
问题解决