Нет соединения http / https внутри контейнера Docker после настройки прокси на Docker клиенте - PullRequest
0 голосов
/ 19 сентября 2019

Я следовал руководству Docker о том, как настроить прокси для контейнеров.Поэтому я поместил следующее в ~/.docker/config.json

{
   (...),
   "proxies":{
      "default":{
         "httpProxy":"http://127.0.0.1:8080",
         "httpsProxy":"http://127.0.0.1:8080",
      }
   }
}

И запустил

sudo systemctl daemon-reload

sudo systemctl restart docker

На хосте я запустил прокси (mitmproxy) в 127.0.0.1:8080 адрес.Похоже, что прокси работает правильно на хосте.Однако, когда я подключаю в контейнере , кажется, что он не может правильно использовать прокси.

docker exec -it my_container_1 /bin/bash

В bash:

bash-5.0#  wget http://google.com
wget: can't connect to remote host (127.0.0.1): Connection refused

Если я использую ping или какой-то ftp адрес, он работает нормально, поэтому он ограничен конфигурацией прокси.

Есть мысли?

1 Ответ

1 голос
/ 19 сентября 2019

http_proxy и https_proxy, определенные в config.json, передаются докером-клиентом в контейнеры.Это практически устанавливает переменные окружения http_proxy и https_proxy в контейнере.Запуск echo $http_proxy в контейнере приведет к выводу значения.

При условии, что прокси-сервер правильно настроен на хосте, IP-адрес прокси-сервера должен быть IP-адресом хоста, видимым контейнером.Замените в config.json 127.0.0.1 на IP-адрес docker0 или основного сетевого интерфейса (eth0) хоста.

...