Docker не может получить доступ к доменам .local - PullRequest
0 голосов
/ 10 января 2019

Я пытаюсь получить доступ к устройствам в моей сети с доменом .local, но, похоже, он не работает в Docker.

Пинг с хоста работает:

$ ping test1.local
PING test1.local (192.168.1.90) 56(84) bytes of data.
64 bytes from 192.168.1.90 (192.168.1.90): icmp_seq=1 ttl=255 time=1.41 ms
64 bytes from 192.168.1.90 (192.168.1.90): icmp_seq=2 ttl=255 time=1.54 ms

Конфигурация Docker demon:

$ cat /etc/docker/daemon.json 
{
    "dns": ["192.168.1.1","8.8.8.8"]
}

Если я пытаюсь пропинговать test1.local из Docker:

$ sudo docker run --network host busybox ping -c 3 test1.local
ping: bad address 'test1.local'

Устройство проверки связи с IP работает:

$ sudo docker run --network host busybox ping -c 3 192.168.1.90
PING 192.168.1.90 (192.168.1.90): 56 data bytes
64 bytes from 192.168.1.90: seq=0 ttl=255 time=4.855 ms
64 bytes from 192.168.1.90: seq=1 ttl=255 time=1.566 ms

Так что я предполагаю, что что-то не так в разрешении имен.

madrian@ubuntudev:~$ cat /etc/resolv.conf 
$ cat /etc/resolv.conf 
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.

nameserver 127.0.0.1
search localdomain

Есть идеи, как решить эту проблему?

1 Ответ

0 голосов
/ 10 января 2019

Попробуйте запустить свой код без аргумента --network host. Проблема в разрешении DNS.

Когда вы используете default bridge (который будет использоваться, если вы пропустите параметр network), контейнеры наследуют конфигурацию DNS от хоста, и это то, что вам нужно: https://docs.docker.com/v17.09/engine/userguide/networking/default_network/configure-dns/

Когда вы используете user-defined bridge, Docker обновляет записи DNS, чтобы обеспечить бесшовную связь между контейнерами по их именам: https://docs.docker.com/v17.09/engine/userguide/networking/configure-dns/

К сожалению, я не смог найти четкого объяснения того, как DNS работает в режиме host, поэтому я предполагаю, что это проблема

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...