Установить хост -> IP-сопоставление из INSIDE DOCKER CONTAINER - PullRequest
0 голосов
/ 07 марта 2020

Я хочу установить запись типа файла хоста для указанного c имени домена ИЗ МОЕЙ ПРИЛОЖЕНИЯ ВНУТРИ контейнера docker. Например, я хочу, чтобы приложение в контейнере разрешало x.com:192.168.1.3 автоматически, без какого-либо внешнего ввода или конфигурации. Я понимаю, что это нетрадиционно по сравнению с каноническими docker вариантами использования, так что не говорите мне об этом:)

Я хочу, чтобы мой код в определенной ветви использовал другое имя хоста: отображение ip для определенный домен c. И я хочу, чтобы он делал это автоматически и без вмешательства хоста, демона docker или конечного пользователя, выполняющего контейнер. В идеале это сопоставление должно происходить на уровне инфраструктуры контейнера, а не какой-либо модификации кода приложения, которая выполняла бы это сопоставление самостоятельно.

Как мне это делать?

Почему это сложно?

  • Файл /etc/hosts в контейнере docker доступен только для чтения и не может быть изменен изнутри контейнера. Это разработано и управляется демоном docker.

  • DNS для контейнера docker связан с DNS базового хоста несколькими способами и не умно слишком много возиться с этим.

Требования :

  • Внутри контейнера домен x.com преобразуется в не- стандартный предварительно настроенный IP-адрес.
  • Контейнер - это стандартный Docker контейнер, работающий на хосте неопределенной конфигурации.

Ограничения:

  • Я не могу передать конфигурацию как флаг времени выполнения (например, --add-host).
  • Я не могу открыть сопоставление извне (например, установить запись DNS на хост-компьютере) .
  • Я не могу изменить базовый хост или рассчитывать на его настройку определенным образом.

открытые вопросы: можно задать Записи DNS изнутри контейнера и переопределение хоста DNS только для контейнера? если да, то какой хороший легкий инструмент с низким уровнем управления для этого (например, DNSmasq, coredns)?

есть ли какие-нибудь маги c, с помощью которых я могу выдать себя за файл /etc/hosts или добавить предварительно обработанный файл перед ним в цепочке разрешений?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...