Как настроить прокси контейнеры докера?

Как настроить прокси контейнеры докера?

Прежде всего,

Я попытался использовать способ, который установил '/etc/systemd/system/docker.service.d/http-proxy.conf' ( https://docs.docker.com/config/daemon/systemd/) и он действительно работает для демона Docker, но он не работает для контейнеров Docker, кажется, что этот способ просто вступает в силу для некоторой команды, такой как 'Docker Pull'

Secondary,

У меня много docker-контейнеров, я не хочу использовать команду "docker run -e http_proxy=xxx..." каждый раз, когда я запускаю контейнер.

Так что я думаю, если есть такой способ автоматически загружать файл глобальной конфигурации при запуске контейнера, я гуглил его и получил его для установки файла '~/.docker/config.json'( Как настроить прокси контейнера Docker ?, Это путь до сих пор не работает для меня.

(моя система хоста - это centos7, вот мой докер -v: Docker версии 1.13.1, сборка 6e3bb8e/1.13.1)

Я чувствую, что это может быть связано с моей версией докера или докером, запущенным службой systemd, поэтому ~ /.docker / config.json не вступает в силу.

В заключение,

Я просто надеюсь, что изменение файлов конфигурации позволит всем моим контейнерам автоматически настраивать переменные среды при его запуске (то есть автоматически устанавливаемые переменные среды 'http_proxy = http://hostip:8118/ https_proxy = http://hostip:8118/ ', когда контейнер начать, как Dockerfile param ENV). Я хочу знать, есть ли такой способ? И если это можно реализовать, я могу заставить контейнер использовать прокси хоста, в конце концов, агент моего хоста работает правильно.

Но я ошибся, я попытался запустить контейнер, а затем установить http_proxy = http://hostip:8118/ и https_proxy = http://hostip:8118/, но когда я использую команду "wget ​​facebook.com", и я получил " Подключение к HostIP:8118... не удалось: маршрут к хосту отсутствует. ', Но хост-машина (centos7) может успешно выполнить wget, и я могу успешно пропинговать хост в контейнере. Я не знаю, почему это может быть связано с брандмауэрами и портом 8118.

Все кончено,

OMG.. У меня нет другого пути, кто-нибудь может мне помочь?

==============================

PS: Вы можете видеть на скриншоте ниже, я на самом деле хочу установить goa и goagen, но сообщить об ошибке, может быть, из-за сетевых причин, я хочу открыть агент, чтобы попытаться, так что... только вышеописанная проблема.

1. Мой Go Docker контейнер введите описание изображения здесь

Go Docker Wget

2. мой хозяин

мой хост wget

1 ответ

Решение

Вам нужна версия 17.07 или более поздняя, ​​чтобы автоматически передавать прокси в контейнеры, которые вы начали использовать в файле config.json. Выпуски 1.13 давно не поддерживаются.

Это хорошо задокументировано в докере: https://docs.docker.com/network/proxy/

Другие вопросы по тегам