2015-07-22 4 views
3

В настоящее время у меня есть одна машина, на которой я запускаю изображения докеров. Я хочу, чтобы все контейнеры были доступны через имя узла, основанное на имени контейнера. Так что, если у меня есть контейнер C1 и C2 и хост для сервера Docker является mydocker.local, то c1.mydocker.local будет указывать на контейнер изображения C1 и если бы я был бежать C3, она станет доступна C3.mydocker.local.Как предоставить динамические имена хостов для всех контейнеров докеров?

docker-dns похоже на то, что я пытаюсь сделать, но проект не обновлялся в течение 7 месяцев, и документации было недостаточно для меня, чтобы он работал.

Это похоже на очень распространенный случай использования, но я не смог создать подходящую магию запросов Google, чтобы найти что-либо.

ответ

1

Вы можете попробовать docker-gen для автоматического обновления hosts файл вашего хоста, или создать dns услуг, таких как Dnsmasq.

Также я нашел изображение докеры под названием dns-gen, которое просто использует docker-gen и dnsmasq, может решить вашу проблему.

0

A Вы должны использовать явное связывание, если контейнеры будут зависеть друг от друга. Это обновит файл hosts hosts внутри контейнера, чтобы добавить IP-адреса для каждого из связанных контейнеров.

Если вы хотите что-то вроде Rancher, вы получите полную виртуальную частную сеть, в которой каждый из контейнеров имеет свой собственный IP-адрес. Rancher также поддерживает службы, которые будут поддерживать DNS для всех запущенных контейнеров. Бонус за использование ранчора заключается в том, что он будет работать и в сценарии с несколькими хостами.

Смежные вопросы