У меня есть неконтейнерный экземпляр 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 полезна во многих других сценариях. Поэтому я ищу решение для поиска DNS, а не просто исправление проблемы с nginx.