Как вызвать конечную точку одного контейнера из другого контейнера-фляги, работающего на разных портах, в docker compose? - PullRequest
0 голосов
/ 30 сентября 2019

Я пытаюсь реализовать 3 контейнера докеров флакона с помощью docker-compose. Я запускаю каждое приложение фляги на разные порты 127.0.0.1:5000, 127.0.0.1:5001, 127.0.0.1:5002. Я упомянул контейнеры в файле docker-compose.yml. docker-compose создает сеть по умолчанию.

Но когда я пытаюсь получить доступ к 5001 container's конечной точке фляги из 5000 container's кода, подобного

requests.get('http://127.0.0.1:5001/endpoint'), выдается следующая ошибка.

HTTPConnectionPool (host = \ '0.0.0.0 \', port = 5001): максимальное количество повторных попыток превышено с помощью URL (вызвано NewConnectionError

Кто-нибудь знает, почему яполучить это.

1 Ответ

1 голос
/ 30 сентября 2019

Это потому, что вы пытаетесь подключиться к localhost внутри самого контейнера Docker, то есть трафик остается внутри этого контейнера Docker.

Вместо этого вы хотите подключиться к другому контейнеру по его имени хоста. ,В контексте сети, управляемой docker / docker-compose, это просто имя контейнера docker. Например, для контейнера foo вы можете подключиться через HTTP к порту 5001, используя http://foo:5001/ внутри вашего контейнера.

...