у меня есть dnsmasq сервис, который в настоящее время привязан к 127.0.0.1 указывая на мой экземпляр minikube вот так:
address=/.k8s.local/192.168.39.184
Я хотел бы запустить контейнеры докеров, которые будут связываться с экземпляром minikube, используя указанный мной DNS.
Когда я устанавливаю DNS контейнера, используя docker run --dns 127.0.0.1 ...
docker выводит следующее сообщение: WARNING: Localhost DNS setting (--dns=127.0.0.1) may fail in containers.
Если я использую сеть хоста так docker run --net host --dns 127.0.0.1 ...
все работает как положено.
Как настроить мост докеров для разрешения DNS с помощью моей локальной службы dnsmasq?
Вы можете использовать локальный DNS-преобразователь хоста (например, dnsmasq
) из ваших контейнеров Docker, если они находятся на определяемая пользователем сеть. В этом случае контейнер /etc/resolv.conf
будет иметь сервер имен 127.0.0.11
(он же Docker's встроенный DNS-сервер), который может правильно пересылать 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