У меня есть неконтейнерный экземпляр nginx, служащий обратным прокси для контейнерных и неконтейнерных сервисов.
Поскольку IP-адреса контейнера могут изменяться при перезагрузке, я не хочу использовать их в файл конфигурации nginx. Я искал простой способ ссылаться на контейнеры. Контейнеры Docker могут ссылаться друг на друга по имени контейнера, то есть поиск в DNS имен контейнера дает IP-адрес контейнера. Я искал что-то подобное, но имена должны быть разрешены из ОС хоста.
Ограничения:
Решение должно работать с существующими контейнерами. Так что никаких docker run ...
команд
Я пробовал mageddo / dns-proxy-server. Предполагается, что он разрешает имена контейнеров, но этого не происходит даже после установки правильных переменных среды.
sudo docker run -d \
--restart unless-stopped \
--name dns-proxy-server \
-p 5380:5380 \
-e MG_REGISTER_CONTAINER_NAMES=true \
--hostname dns.mageddo \
-v /opt/dns-proxy-server/conf:/app/conf \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /etc/resolv.conf:/etc/resolv.conf defreitas/dns-proxy-server
PS: Хотя nginx взят в качестве примера, функция поиска DNS полезна во многих других сценариях ios. Поэтому я ищу решение для поиска DNS, а не просто исправление проблемы nginx.