Назад | Перейти на главную страницу

Как назначить внешнее DNS-имя контейнерам Docker

Как назначить DNS-имена непосредственно контейнерам Docker? Это довольно широкий вопрос, чтобы избежать проблем X / Y - я попытаюсь объяснить, что я сделал, но не стесняйтесь предлагать другой путь.

Прямо сейчас моя идея состоит в том, чтобы создать DNS-имена в моем преобразователе и направить их на IP-адрес, выделенный для каждого контейнера. Многие контейнеры будут иметь перекрывающиеся порты, поэтому я пытался использовать macvlan драйвер, чтобы назначить им отдельные IP-адреса. Они прикреплены к сетевому интерфейсу только для контейнеров. Некоторые из моих усилий показаны в эта ветка Reddit - но до сих пор мне не удалось выполнить маршрутизацию ни внутрь, ни из контейнера при использовании macvlan.

Есть ли рекомендуемый способ иметь только один хост Docker с несколькими службами на портах 80/443 (или других общих портах), направленных на one.example.com, two.example.com и т.д?

После дальнейшего расследования я нашел решение этой проблемы. В частности, я использовал старший гид к macvlan, где не упоминается, что на вашем сетевом адаптере должен быть включен неразборчивый режим. В последнее руководство упоминает об этом. Как оказалось, это отлично решает мою проблему - все службы получают свой собственный IP-адрес, который я затем могу назначить записи DNS в моем преобразователе.