仍然无法从 Docker 容器访问互联网

仍然无法从 Docker 容器访问互联网

跟随https://stackoverflow.com/a/46266757(@mkubaczyk 回答“Ubuntu 下 docker + ufw 的最佳实践是什么”)指导如何正确配置 Docker 和 UFW,但仍然无法在容器中访问互联网。

可能是什么问题?

答案1

问题可能出在您使用 设置的容器上docker-compose。默认情况下,会为文件中的服务创建新网络docker-compose.yml。这导致您不仅拥有子网设置docker0的接口172.17.0.0/16,而且通常还有其他接口 172.x.0.0/16。

为了解决这个问题,您应该为您的网络添加更多规则:

$ iptables -t nat -A POSTROUTING ! -o br-XXX -s 172.YYY.0.0/16 -j MASQUERADE

其中 br-XXX 是接口名称,172.YYY.0.0/16 - 子网。

或者,使用单个docker0网络,在您的docker-compose.yml每个服务中描述:

    network_mode: bridge

相关内容