Docker容器无法连接到互联网

时间:2019-08-15 05:58:27

标签: docker docker-network

我已经将服务器(Ubuntu 18.04 LTS)从一个网络物理地移到了另一个网络(所以我更改了IPaddress / netmask / gateway / DNSs)。重新启动后,相同的Docker容器将无法再连接到Internet

这是网桥网络的配置

用户名@主机名:〜$ sudo docker检查网桥

[
    {
        "Name": "bridge",
        "Id": "f3d9b8da0a6a3d735c9045846eae7ee34afe8c68a6873bbb8a91c2318c946629",
        "Created": "2019-08-13T04:54:13.643422223+02:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "172.17.0.0/16",
                    "Gateway": "172.17.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "b12deba1ead80f43d09db8b5542dbfd52e0d2c340e3c36cbb537a60687e30fe0": {
                "Name": "container1",
                "EndpointID": "b17e3b047efaad714e922adc32cd731bbea120b8755ffc0c1c799687cf4af73d",
                "MacAddress": "02:42:ac:11:00:02",
                "IPv4Address": "172.17.0.2/16",
                "IPv6Address": ""
            }
        },
        "Options": {
            "com.docker.network.bridge.default_bridge": "true",
            "com.docker.network.bridge.enable_icc": "true",
            "com.docker.network.bridge.enable_ip_masquerade": "true",
            "com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
            "com.docker.network.bridge.name": "docker0",
            "com.docker.network.driver.mtu": "1500"
        },
        "Labels": {}
    }
]

这是接口的配置

用户名@主机名:〜$ ip addr show

117: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:91:dc:0c:04 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever

如果开始忙碌的盒子 用户名@主机名:〜$ docker run -itd --name = container1 busybox

我依附于此 用户名@主机名:〜$ docker attach container1

我平遍世界 /#ping -w3 8.8.8.8

PING 8.8.8.8 (8.8.8.8): 56 data bytes

--- 8.8.8.8 ping statistics ---
4 packets transmitted, 0 packets received, 100% packet loss

所以没有回复,而我可以成功ping通另一个忙碌的盒子容器。

仅为提供更多信息,这些是busybox容器识别的IP名称:

***/ # cat /etc/hosts***
127.0.0.1   localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.2  b12deba1ead8

以及来自容器内部的路线 /#IP路由显示

172.17.0.0/16 dev eth0 scope link  src 172.17.0.2

我可以从容器内部ping通网关( /#ping -w 4 172.17.0.1 ),也可以成功ping通服务器的IP地址( /#ping -w 4 xxx.xxx.xxx.xxx )。

很明显,我所有的容器都有这个问题,不仅是busybox:例如,通过在高山docker容器中打开外壳,我也无法通过网桥。

我最初的猜测是这可能是防火墙问题,但是如果我“ sudo ufw disable”没有任何改变。

我检查的其他可能参数是 用户名@主机名:〜$ sudo sysctl net.ipv4.conf.all.forwarding

net.ipv4.conf.all.forwarding = 1

到目前为止,对我来说一切都还不错。我还删除并重新安装了docker daemon,但仍然是同样的问题。

可能是什么问题?任何想法? 谢谢。

0 个答案:

没有答案