Я только что установил Docker на CentOS 8. Все прошло нормально, я запустил тестовый контейнер hello_world, и результат был успешным. Проблема в том, что внутри контейнеров я не могу разрешить DNS-запросы.
Например, когда я набираю ping 8.8.8.8 (для любого базового контейнера, такого как Ubuntu или CentOS), я получаю правильный ответ, но когда попробуйте запустить ping google.com
Я не получил никакого ответа, это означает, что контейнер не может разрешить DNS для любого URL.
Я также попытался запустить базовый контейнер, как этот:
docker run busybox ping -c 1 192.203.230.10
и я получаю (правильный) вывод:
[server@localhost ~]$ docker run busybox ping -c 1 192.203.230.10
PING 192.203.230.10 (192.203.230.10): 56 data bytes
64 bytes from 192.203.230.10: seq=0 ttl=51 time=32.413 ms
--- 192.203.230.10 ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 32.413/32.413/32.413 ms
Но теперь пытаюсь разрешить домен google.com с помощью команды:
docker run busybox nslookup google.com
Я получаю этот вывод :
[server@localhost ~]$ docker run busybox nslookup google.com
nslookup: write to '8.8.8.8': No route to host
nslookup: write to '8.8.4.4': No route to host
;; connection timed out; no servers could be reached
Я нахожу эту проблему действительно разочаровывающей, так как я не нашел способа ее решить. Я прилагаю для полноты cat /etc/resolv.conf
как машины с Docker, так и самого контейнера
На машине с CentOS 8:
[server@localhost ~]$ cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 8.8.8.8
nameserver 8.8.4.4
Внутри любого Docker контейнера :
bash-4.4# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 8.8.8.8
nameserver 8.8.4.4
Это выглядит как нормальная и рабочая конфигурация, но когда я пытаюсь пинговать google.com (внутри контейнеров), я получаю:
bash-4.4# ping google.com
ping: google.com: Try again
Какие новые вещи я могу попробовать?