Docker не может связаться с внешней конечной точкой - PullRequest
0 голосов
/ 24 октября 2018

Я пошагово покажу вам, в чем заключается моя проблема.

Я раскручиваю контейнер докера, и изображение пытается связаться с внешней конечной точкой, и все, что я получаю, это:

Изнутри Docker Container

curl: (6) Could not resolve host: my-external-endpoint.com

Теперь, когда я вхожу в контейнер и выполняю curl, это тот же результат.

Теперь, когда я делаю это изс хост-машины я получаю:

с хост-машины

<!DOCTYPE html>
<html lang="en">
<p>SUCCESS</p>
</html>

Таким образом, с хост-машины я могу получить доступ к конечной точке, но не изконтейнер, работающий на этом хосте.

Теперь давайте посмотрим на мои настройки.

На моей хост-машине я запускаю resolvd.Мой /etc/resolv.conf файл:

nameserver 127.0.0.53

И содержимое моего cat /etc/systemd/resolved.conf | grep DNS файла:

DNS=172.27.4.22 172.27.4.23

Это IP-адреса моего внутреннего DNS-сервера, и они работают.

И содержимое /etc/resolv.conf внутри моего контейнера Docker:

nameserver 172.27.4.22
nameserver 172.27.4.23

Я полагаю, это потому, что мои аргументы запуска Docker /etc/systemd/system/docker.service.d/docker-dns.conf:

[Service] Environment = "DOCKER_DNS_OPTIONS = \ --dns 172.27.4.22 --dns 172.27.4.23 \ --dns-search \ --dns-opt ndots: 2 --dns-opt timeout: 2 - dns-opt попытки: 2 \

Я также заметил, что не могу достичь конечной точки с помощью IP-адреса.

Я не уверен, почему мой докер-контейнер не может получить доступ к чему-либо.

Мой демон Docker работает со следующими аргументами.

26371 /usr/bin/dockerd --graph=/var/lib/docker --log-opt max-size=50m --log-opt max-file=5 --iptables=false --disable-legacy-registry --dns 172.27.4.22 --dns 172.27.4.23 --dns-search <my-domain> --dns-opt ndots:2 --dns-opt timeout:2 --dns-opt attempts:2
...