n1ro°
RU

Ошибки и коды · Инструкция

Docker container не резолвит домены

Внутри container откройте `/etc/resolv.conf` и выполните `getent hosts example.com` или доступный resolver tool. Проверь

Редакция N1RO · Проверено

Короткий ответ

Отделите 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.

Исправление

  1. Если host использует local stub-resolver, задайте Docker доступный upstream DNS по политике сети, а не `127.0.0.1`.
  2. Для имён других контейнеров используйте одну user-defined network и обращайтесь по service/container name.
  3. Пересоздайте 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.