首页 > 解决方案 > 同一网络中的容器无法通信

问题描述

我有一个 Docker 桥接网络,它附加了 2 个容器:

网络有这样的配置:

[
    {
        "Name": "mynetwork",
        "Id": "f94f76533b065d39515b65d20b8645c22617be51ec9335fcfad8ce707ca48841",
        "Created": "2019-02-20T17:17:29.029434324+01:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "10.1.0.0/16",
                    "Gateway": "10.1.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "Containers": {
            "c8084141e36c756710cbfa020f664127f234e407986362331ab127d415c9b074": {
                "Name": "nodeContainer",
                "EndpointID": "e25f8797c1b7488d7c3810d8f38c4b3dea6b9f19f17558a164b710015fdd9e1a",
                "MacAddress": "02:42:0a:01:00:03",
                "IPv4Address": "10.1.0.3/16",
                "IPv6Address": ""
            },
            "f9c582d031515f4bba910286118df806a6a2b04a36917234eca09fdf335d4457": {
                "Name": "flaskContainer",
                "EndpointID": "fbf053f97acc7b9491c536966b640862d366d1599fbfb400915cd8bc26b04f6a",
                "MacAddress": "02:42:0a:01:00:02",
                "IPv4Address": "10.1.0.2/16",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {}
    }
]

通常,这两个容器进行通信(nodeContainer向 发出请求),但是在设置不同的和(对于外部网络约束)http://flaskContainer:5000后停止工作。SubnetGateway

特别是,我收到一个错误,例如ETIMEDOUT 10.1.0.2:3333. 这让我认为地址已正确解析,但由于某种原因,没有答案(实际上flaskContainer什么也没有记录)。

作为附加信息:

docker exec flaskContainer curl flaskContainer
docker exec nodeContainer curl nodeContainer

显然不起作用(Failed to connect to flaskContainer port 80)。

docker exec flaskContainer curl flaskContainer:5000
docker exec nodeContainer curl nodeContainer:3333

正确给出结果。

docker exec flaskContainer curl nodeContainer:3333
docker exec nodeContainer curl flaskContainer:5000

进入超时。

你知道可能是什么原因吗?我该如何解决这个问题?谢谢

标签: dockerdocker-network

解决方案


推荐阅读