2016-11-21 6 views
1

Можно ли установить env. переменные для всех контейнеров Docker futur?Настройка глобальных переменных окружения для всех контейнеров докеров

Это будет полезно для настройки прокси-сервера http для определенного хоста без изменения файла образа Docker или способа запуска контейнера (так что один и тот же контейнер Docker может работать нормально в разных «контекстах»).

Возможно через /etc/default/docker?

ответ

0

Docker сочинить использует переменные подстановки, так что вы можете использовать переменный хост в Докер-Compose файла:

Если Баш сеанс переменный называется EXTERNAL_PORT определены.

web: 
    build: . 
    ports: 
    - "${EXTERNAL_PORT}:5000" 

Проверил: https://docs.docker.com/compose/compose-file/#variable-substitution

Кроме того, в случае прокси я предполагаю, что использование HTTP_PROXY должен перенаправить трафик по умолчанию, если она определена в текущем сеансе оболочки.

export http_proxy=http://10.203.0.1:5187/ 
export https_proxy=$http_proxy 
export ftp_proxy=$http_proxy 
export rsync_proxy=$http_proxy 
export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com" 

Нечто подобное должно перенаправить весь HTTP-трафик, вы можете установить его .bashrc. Никогда не проверяйте с докером, дайте мне знать, если это сработает.

+0

Я не говорю о создании докеров , Прости. –

+0

@ThomasDecaux Затем вы должны попробовать: «HTTP_PROXY» не связан с докерером или docker-compose для настройки прокси-сервера, это просто переменная enux linv. Для этого есть и аналоги Windows. Я бы создал пользовательский пользователь для запуска изображений со всеми настройками env vars. – Marcs

0

Если вы не используете докер-композицию, как сказал Маркс, тогда нет.

Dockerfiles создает двоичные файлы. Все, что не указано в файле dockerfile (или docker-compom yaml или docker build), не попадет в контейнер. Это касается многих соображений безопасности, а также общих рекомендаций, поскольку люди могут заставлять эти контейнеры зависеть от самого хоста. Либо используйте docker-compose для создания своего здания, либо посмотрите на внесение изменений в сам хост, который повлияет на этот уровень контейнера докеров, например, на общесистемный прокси-сервер, который влияет на подсеть 172, которая влияет на подсеть 172.

+0

Dockerfile создает образ, который вы запускаете через '' docker run''? Я хотел бы передать '' docker run -e K1 = V1 ... '' автоматически. Поэтому разработчикам все равно не нужно прокси. –