Назад | Перейти на главную страницу

Как заставить conda использовать прокси-сервер хоста внутри контейнера Docker

Вот такая ситуация. я использую Докер с изображением континуума / анаконды3. У меня есть сервер (Ubuntu 16.04 LTS), настроенный на использование корпоративный прокси с пакетом CNTLM. Интернет работает нормально на хосте через локальный прокси.

Я также модифицировал cntlm.conf для прослушивания виртуального сетевого интерфейса Docker (docker0) на 172.17.0.1.

Docker также правильно настроен, и я могу без проблем извлекать изображения. После развертывания контейнера с образом Anaconda и настройки контейнера для использования прокси-сервера хоста путем экспорта переменных env http_proxy="http://172.17.0.1:3128" и так далее, я могу использовать wget и curl скачивать.

Проблема возникает с conda. Я следую документации, и я также экспортировал HTTP_PROXY и HTTPS_PROXY переменные. Это не работает. Затем я создал .condarc файл в /root каталог с:

proxy_servers:
  https: localhost:3128
  http: localhost:3128

Также пробовал ssl_verify: False.

Кажется, ничего не работает. Я всегда получаю такую ​​ошибку:

CondaHTTPError: HTTP None None for url <https://repo.continuum.io/pkgs/free/linux-64/repodata.json.bz2>
Elapsed: None

An HTTP error occurred when trying to retrieve this URL.
HTTP errors are often intermittent, and a simple retry will get you on your way.
ProxyError(MaxRetryError("HTTPSConnectionPool(host='repo.continuum.io', port=443): Max retries exceeded with url: /pkgs/free/linux-64/repodata.json.bz2 (Caused by ProxyError('Cannot connect to proxy.', NewConnectionError('<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x7fd88e1d1240>: Failed to establish a new connection: [Errno 111] Connection refused',)))",),)

Попробуйте создать в Dockerfile эти вары:

ENV http_proxy="x.x.x.x:xxxx"
ENV https_proxy="x.x.x.x:xxxx"

Этот x.x.x.x не 127.0.0.1. Этот IP-адрес должен быть стандартным IP-адресом локальной сети прокси-сервера cntlm.