Как использовать перенаправление 127.0.0.1 для IP-адреса докера - PullRequest
0 голосов
/ 21 октября 2019

Я настраиваю среду docker-compose для веб-приложения, которое отвечает на субдомен подстановочного знака. При разработке мы просто используем отличный домен lvh.me (который разрешается до 127.0.0.1), и он работает для всех поддоменов без дополнительной настройки, например:

  • app.lvh.me: 3000
  • app2.lvh.me: 3000
  • app-watherever.lvh.me: 3000

Мой вопрос заключается в том, как настроить пользовательский домен (скажем, app.local) и все его субдомены для разрешения в docker-machine ip.

Примечание. Я не хочу использовать etc/hosts, так как для этого потребуется отдельно добавлять каждый субдомен в файл.

Ответы [ 2 ]

0 голосов
/ 21 октября 2019

На самом деле это не имеет особого отношения к Docker.

Имейте в виду, что выполнение этого с суффиксом домена .local не позволит вам получить сертификат TLS от публично доверенного органа и приведет квам нужно изменить свою среду, чтобы доверять локальному центру сертификации, который затем выдает сертификаты на хост-домен вашего докера. Если у вас есть ИТ-отдел, я настоятельно рекомендую поговорить с ними;если они отклонят запрос, поговорите с вашим менеджером и попросите его выполнить его.

Основные шаги следующие:

  1. Настройте локальный DNS-сервер, которыйвы можете указать свой распознаватель на.

  2. Сконфигурируйте его для пересылки запросов, на которые он не может сам отвечать на ваши текущие DNS-серверы.

  3. Установитьдо зоны app.local, содержащей несколько записей. (В записи SOA ваш адрес электронной почты должен быть написан точкой вместо символа @ и конечной точкой. Все полные DNS-имена, написанные здесь, должны иметь конечную точку. А также, поменяйте местами '127.19.20.201' длякаким бы ни был ваш док-компьютер):

app.local.    IN       SOA  60  yourmachinename your.email.address.  (
                       2019102100    ; serial number: YYYYMMDDss where ss is sequence
                       3600          ; refresh interval, not important here
                       1800          ; retry interval, not important here
                       3600          ; record expiration, not important here
                       60            ; minimum record time-to-live
)
app.local.    IN       A    60  172.19.20.201
*.app.local.  IN       A    60  172.19.20.201
Измените свой распознаватель ОС, чтобы он указывал на этот локальный DNS-сервер. (Если вы работаете в Windows, эта операция требует повышения прав. В противном случае, если вы используете bind, она находится в /etc/resolv.conf.)

Если вам нужно сделать это более чем на поговорите со своим ИТ-отделом . Это те, у кого есть возможность (хотя и не обязательно готовность, если ваш менеджер не заставляет их это делать) настроить эту зону для всех машин, которые используют свой DNS-сервер. Бизнес-обоснования («нам нужно, чтобы оно работало как наше основное приложение, но на другом хосте и доменном имени») превосходят идеологическую корректность (хотя «.local» как TLD зарезервирован в RFC DNS), хотя они не могут превзойти мандаты протокола.

(Если вам нужен сертификат TLS для этой разработки - и вы, вероятно, действительно это делаете!), Вам также следует поговорить с вашим ИТ-отделом. Они могут получить бесплатный сертификат подстановочного знака от LetsEncrypt, проверив контроль надЗона DNS. Изучение того, как это сделать, может занять от 15 до 30 минут, а настройка среды может занять от 15 минут до 6 часов, в зависимости от используемого поставщика DNS.)

0 голосов
/ 21 октября 2019

Вы можете использовать один из своих доменов (или купить дешевый) с услугой хостинга DNS.

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

...