Восходящий выпуск Docker-NGINX / Pinging Containers - PullRequest
1 голос
/ 02 мая 2019

Мне нужна помощь для решения проблемы с Docker Network и доступа к контейнерам между собой.

Сначала позвольте мне рассказать вам о моей простой среде докера, основанной на Ubuntu и собственной установленной среде Docker.

Я создал дополнительные сети для объединения нескольких контейнеров. Контейнеры в этих сетях имеют фиксированные сетевые адреса IP4. Таким образом, они должны быть в состоянии узнать и получить доступ друг к другу.

Перед этими сетями я настроил NGINX-Proxy для доступа к этим контейнерам извне. NGINX назначается каждой сети, а также сети мостов.

Хорошо ... все нормально и работает, но иногда у меня возникает проблема, что некоторые контейнеры не могут быть достигнуты, и я получаю следующие ошибки в логе nginx:

2019/05/02 07:39:26 [error] 37#37: *29825 connect() failed (113: No route to host) while connecting to upstream, client: 213.182.2.102, server: ####.###.works, request: "GET /favicon.ico HTTP/2.0", upstream: "http://172.19.0.26:80/favicon.ico", host: "####.###.works", referrer: "https://####.###.works/preview/index.html?url=https://####.###.works/public/page/4291/preview?2019-04-30%2009:29:53"
2019/05/02 07:39:26 [warn] 37#37: *29825 upstream server temporarily disabled while connecting to upstream, client: 213.182.2.102, server: ####.###.works, request: "GET /favicon.ico HTTP/2.0", upstream: "http://172.19.0.26:80/favicon.ico", host: "####.###.works", referrer: "https://####.###.works/preview/index.html?url=https://fendt-wm-api.geneva.works/public/page/4291/preview?2019-04-30%2009:29:53"

...

В результате этого невозможно получить доступ к контейнеру и ответам без содержимого.

Чтобы найти проблему, я просто попытался пропинговать IP 172.19.0.26 с хоста-докера, а также с некоторых контейнеров.

PING 172.19.0.26 (172.19.0.26) 56(84) bytes of data.
64 bytes from 172.19.0.26: icmp_seq=1 ttl=64 time=0.180 ms
64 bytes from 172.19.0.26: icmp_seq=2 ttl=64 time=0.067 ms
64 bytes from 172.19.0.26: icmp_seq=3 ttl=64 time=0.067 ms
From 172.19.0.14 icmp_seq=1 Destination Host Unreachable
64 bytes from 172.19.0.26: icmp_seq=5 ttl=64 time=0.061 ms
From 172.19.0.14 icmp_seq=4 Destination Host Unreachable
From 172.19.0.14 icmp_seq=6 Destination Host Unreachable
64 bytes from 172.19.0.26: icmp_seq=8 ttl=64 time=0.131 ms

При всех попытках мне было интересно, почему на запрошенный пинг ответили 172.19.014 вместо 172.19.0.26?

Я думаю, что это будет ключевой вопрос, почему иногда не удается получить доступ к контейнеру.

Я потратил несколько дней на исследование и расследование. Я также искал stackoverflow, но я не нашел решений, подходящих для моей проблемы.

Кто-нибудь знает, что здесь происходит?

BR Markus

...