Как настроить прокси контейнеры докера?
Как настроить прокси контейнеры докера?
Прежде всего,
Я попытался использовать способ, который установил '/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 контейнер введите описание изображения здесь
2. мой хозяин
1 ответ
Вам нужна версия 17.07 или более поздняя, чтобы автоматически передавать прокси в контейнеры, которые вы начали использовать в файле config.json. Выпуски 1.13 давно не поддерживаются.
Это хорошо задокументировано в докере: https://docs.docker.com/network/proxy/