Docker - сбой связи между контейнерами в одной сети - PullRequest
0 голосов
/ 10 октября 2018

Я развертываю приложение Angular - Django на капле Digital Ocean.Он состоит из 3 контейнеров Docker:

  • cards_front: угловой интерфейс
  • cards_api: серверная часть остального фреймворка django
  • cards_db: база данных postgres

Все они находятся в одной сети:

[
{
    "Name": "ivan_cards_api_network",
    "Id": "ddbd3524e02a7c918f6e09851731e015fdb7e8647358c5ed0c4cd949cf651fd9",
    "Created": "2018-10-09T23:44:33.293036243Z",
    "Scope": "local",
    "Driver": "bridge",
    "EnableIPv6": false,
    "IPAM": {
        "Driver": "default",
        "Options": null,
        "Config": [
            {
                "Subnet": "172.22.0.0/16",
                "Gateway": "172.22.0.1"
            }
        ]
    },
    "Internal": false,
    "Attachable": true,
    "Ingress": false,
    "ConfigFrom": {
        "Network": ""
    },
    "ConfigOnly": false,
    "Containers": {
        "0d3144b27eaf6d7320357b6d703566e489f672b09b61dba0caf311c6e1c4711c": {
            "Name": "cards_front",
            "EndpointID": "47b1f8f42c4d18afeafeb9da502fd0197e726f29bd6d3d3c2960b44737bd579a",
            "MacAddress": "02:42:ac:16:00:04",
            "IPv4Address": "172.22.0.4/16",
            "IPv6Address": ""
        },
        "3e9233f4bfc023632aaf13a146d1a50f75b4944503d9f226cf81140e92ccb532": {
            "Name": "cards_api",
            "EndpointID": "34d4780dc6f907a8cb9621223d6effe0a0aac1662d5272ae4a5104ba7f3808c4",
            "MacAddress": "02:42:ac:16:00:03",
            "IPv4Address": "172.22.0.3/16",
            "IPv6Address": ""
        },
        "e5e208a20523c2d41433b850dc64db175de8ee7d0d156e2917c12fd8ebdf97ab": {
            "Name": "cards_db",
            "EndpointID": "8a8f44bbcdf2f95e716e2763e33bed31e1d2bdbfae7f6d78c8dee33de426a7ef",
            "MacAddress": "02:42:ac:16:00:02",
            "IPv4Address": "172.22.0.2/16",
            "IPv6Address": ""
        }
    },
    "Options": {},
    "Labels": {
        "com.docker.compose.network": "cards_api_network",
        "com.docker.compose.project": "ivan",
        "com.docker.compose.version": "1.22.0"
    }
}

ALLOWED_HOSTS в настройках django имеет значение ['*']

Когда я тестирую угловой фронт- в браузере я получаю инструменты разработчика Chrome:

GET http://localhost:8000/themes net::ERR_CONNECTION_RESET

Итак, контейнер Angular не может связаться с контейнером django.

Но если я сделаю curl localhost: 8000/ themes изнутри капли DO Я получаю ответ.

Я знаю, что что-то не хватает в конфигурации сети, но я не могу понять, что это такое.

Спасибо

РЕДАКТИРОВАТЬ:

Если я сделаю завиток из контейнера Angular в контейнер Django, я получу ответ (пустой массив):

root@90cea47dd13d:/# curl 172.22.0.3:8000/themes
[]
...