Настройка Docker DNS - PullRequest
0 голосов
/ 10 мая 2019

У меня есть настройки с локальным DNS, размещенным в докере. По разным причинам мне нужно иметь возможность использовать этот DNS в других контейнерах докеров. Показательный пример:

У меня есть контейнер, sso , который выдает пользователям токены JWT. Этот токен ссылается на его внешнее имя sso.example.com , и клиентские службы должны его аутентифицировать.

Теперь sso.example.com доступен как внешне (от Google DNS и др.), Так и зарегистрирован на моем локальном DNS.

Однако я просто не могу заставить другие мои контейнеры разрешать имена в следующем порядке:

  • Docker DNS (127.0.0.11)
  • DNS в докере (172.17.42.x и 192.168.1.42 на хосте)
  • Внешний DNS (1.1.1.1, 8.8.8.8)

Как правильно разрешить разрешать как DNS DNS, так и DNS Docker. Я на Ubuntu Server 18.04 LTS.

1 Ответ

1 голос
/ 10 мая 2019

Ваш клиент запросит только один DNS-сервер для разрешения имени.Если имя не найдено сервером, клиент не сможет разрешить имя.Наличие нескольких серверов имен в /etc/resolv.conf помогает, только если запрос к одному из них приводит к тайм-ауту, используется следующий.

Я предлагаю настроить DNS-сервер Docker на всех клиентах.Этот DNS-сервер должен отвечать и кэшировать или пересылать запросы на вторичные серверы соответственно.Но я не эксперт по настройке сервера bind / DNS.

Может быть, это может помочь, хотя это для более старой версии Ubuntu: https://www.digitalocean.com/community/tutorials/how-to-configure-bind-as-a-caching-or-forwarding-dns-server-on-ubuntu-16-04

...