У меня есть сеть моста 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
уходит в тайм-аут.
Есть ли у вас какие-либо идеи о том, что может бытьпричина?Как я могу решить это?Спасибо