Хотя я могу успешно проверить связь с хостом из контейнера Docker (например, docker run busybox ping -c 1 216.58.207.206
), запросы, включающие поиск DNS, приводят к тайм-ауту ( например docker run nslookup google.com
).
Я просмотрел предложения из этой проблемы с NPM Github , а именно редактирование / e tc / hosts
, подключения из разных сетей и перезагрузка компьютера - все безуспешно.
Проблемы с подключением Docker к Docker кажутся - обычными , однако мои проблема связана с подключением Docker к DNS и отличается от этих проблем (хотя сообщение об ошибке похоже).
Я также пробовал Исправить конфигурацию DNS Docker Робина Уинслоу , однако, явно указав локальный или глобальный DNS-сервер выходит из строя.
$ docker run --dns <local DNS IP> busybox nslookup google.com
>>> nslookup: write to <local DNS IP>: No route to host
;; connection timed out; no servers could be reached
$ docker run --dns 8.8.8.8 busybox nslookup google.com
>>> nslookup: write to '8.8.8.8': No route to host
;; connection timed out; no servers could be reached
Всем, у кого есть проблемы с Docker в Fedora 31/32, я предлагаю следовать Руководству журнала Fedora Magazine по Docker и Fedora 32
Лично для меня проблема была вызвана из-за того, что брандмауэр блокировал подключения к Docker, и следующая команда устранила это:
sudo firewall-cmd --permanent --zone=trusted --add-interface=docker0
sudo firewall-cmd --reload # reload the firewall rules
Docker требует корневого демона, который создает проблему безопасности . Проблему можно решить, переключившись на Podman и используя его с теми же командами, что и Docker:
podman run --dns 8.8.8.8 busybox nslookup google.com