Docker容器随机丢失互联网

时间:2018-07-12 08:29:01

标签: docker firewall

我已经设置了2个docker容器。一个服务器提供一个角度应用程序,另一个服务器是一个.net核心应用程序,该应用程序从angular获取API调用,并将其发送到ERP,获取数据并将它们传递回angular。它充当代理。 整个过程都在开发中,因此不经常使用。 有时我注意到Docker容器失去了互联网连接。我在容器中执行bash并卷曲以获取地址并超时。 我的主机是带有csf防火墙的debian稳定安装程序。我在csf.allow中有我的码头范围地址:

localhost
127.0.0.1
172.20.0.0/24

我已经建立了一个码头网络,当我进行码头检查时我得到了容器:

"e76912e90d5f41655ec1a3ae8c62ead4f3110b9649a7f84d2c5f1d1fc4061306": {
                "Name": "backend-test",
                "EndpointID": "3a050810c3bc23a79a08ad9cadb67a0c29af901777250706d59201d305596048",
                "MacAddress": "02:42:ac:14:00:0b",
                "IPv4Address": "172.20.0.11/16",
                "IPv6Address": ""
            },
            "eeb00eb35b126023180ba5b3799b519bb6b4a1b28407b5b19858f414716ed4aa": {
                "Name": "kibana",
                "EndpointID": "c57f6d2f6cf3a12a358ab851e56fbc91ceb63f0a4c6f37cf41b45d8f794e43bc",
                "MacAddress": "02:42:ac:14:00:02",
                "IPv4Address": "172.20.0.2/16",
                "IPv6Address": ""
            }

我应该检查什么?如果我禁用csf仍然docker容器没有互联网。我唯一能做的就是重启docker。

1 个答案:

答案 0 :(得分:1)

我有一个类似的问题。最终,我发现容器中的/etc/resolv.conf文件与名称服务器所用的名称服务器不同

systemd-resolve --status | grep "DNS Server"

在我的Ubuntu主机上。正在运行的容器的解决方法是将新的DNS服务器从systemd-resolve --status输出复制到容器中的/etc/resolv.conf

对于以后的容器,我使用--dns switch将容器指向固定的公共DNS服务器。

我认为根本原因是我的移动互联网;我认为只要手机决定重新连接,我都会获得其他DNS服务器。