Разрешить DNS для контейнера докеров с помощью dnsmasq

У меня есть служба dnsmasq , которая в настоящее время привязана к 127.0.0.1 , указывая на мой экземпляр minikube следующим образом:

address=/.k8s.local/192.168.39.184

Я Я хотел бы запустить контейнеры докеров, которые будут взаимодействовать с экземпляром minikube, используя указанный мной DNS.
Когда я устанавливаю DNS контейнера с помощью docker run --dns 127.0.0.1 ... docker выводит следующее сообщение: ПРЕДУПРЕЖДЕНИЕ: настройка DNS для локального хоста (--dns = 127.0.0.1) может не работать в контейнерах.
Если я использую сеть хоста таким образом docker run --net host --dns 127.0.0.1 ... все работает как положено.
Как настроить мост докеров для разрешения DNS с помощью моей локальной службы dnsmasq?

0
задан 5 March 2018 в 21:24
1 ответ

Вы можете использовать локальный DNS-преобразователь хоста (например, dnsmasq ) из ваших контейнеров Docker, если они находятся в пользовательской сети . В этом случае контейнер /etc/resolv.conf будет иметь сервер имен 127.0.0.11 (также известный как встроенный DNS-сервер Docker ), который может пересылать DNS-запросы. на адрес обратной связи хоста.

$ cat /etc/resolv.conf
nameserver 127.0.0.1
$ docker run --rm alpine cat /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
$ docker network create demo
557079c79ddf6be7d6def935fa0c1c3c8290a0db4649c4679b84f6363e3dd9a0
$ docker run --rm --net demo alpine cat /etc/resolv.conf
nameserver 127.0.0.11
options ndots:0    
3
ответ дан 4 December 2019 в 12:18

Теги

Похожие вопросы