контейнеры в одной сети не могут общаться - PullRequest
0 голосов
/ 20 февраля 2019

У меня есть сеть моста Docker, к которой подключены 2 контейнера:

  • сервер Node.js, работающий на порту 3333
  • сервер Flask, работающий на порту 5000

Сеть имеет следующую конфигурацию:

[
    {
        "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), но это перестало работать после установкиразные Subnet и Gateway (для ограничений внешней сети).

В частности, я получаю сообщение об ошибке типа 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

уходит в тайм-аут.

Есть ли у вас какие-либо идеи о том, что может бытьпричина?Как я могу решить это?Спасибо

...