Ошибки и коды · Инструкция
Docker container не резолвит домены
Внутри container откройте `/etc/resolv.conf` и выполните `getent hosts example.com` или доступный resolver tool. Проверь
Короткий ответ
Отделите DNS от общей сети: проверьте IP-доступ и lookup внутри container, затем `/etc/resolv.conf`, Docker network и доступность upstream DNS; не указывайте host `127.0.0.1` как DNS, если resolver слушает только loopback хоста.
Проверка по порядку
- Внутри container откройте `/etc/resolv.conf` и выполните `getent hosts example.com` или доступный resolver tool.
- Проверьте связность по IP, чтобы не путать DNS с route/firewall-проблемой.
- Выполните `docker network inspect <network>` и проверьте подключение container.
Исправление
- Если host использует local stub-resolver, задайте Docker доступный upstream DNS по политике сети, а не `127.0.0.1`.
- Для имён других контейнеров используйте одну user-defined network и обращайтесь по service/container name.
- Пересоздайте container после изменения DNS/network и повторите внешний и внутренний lookup.
Как понять, что исправлено
- DNS lookup внутри container возвращает адреса, IP-сеть работает и resolv.conf указывает на доступный resolver.
Важно
127.0.0.1 внутри container относится к самому container. Не указывайте loopback хоста как DNS, если resolver не доступен из Docker network.
Что учитывать
127.0.0.1 внутри container относится к самому container. Не указывайте loopback хоста как DNS, если resolver не доступен из Docker network.
Источники и проверка
Фактическая часть сверена по первичным источникам (в т.ч. Networking overview). Пример и формулировки — редакция N1RO на 2026-09-17.