web-dev-qa-db-ja.com

condaにDockerコンテナ内のホストプロキシを使用させる方法

これが状況です。 Dockerをcontinuumio/anaconda3イメージで使用しています。サーバー(Ubuntu 16.04 LTS)がCNTLMパッケージでcorporate proxyを使用するように構成されています。インターネットは、ローカルプロキシを介してホストで正常に機能します。

また、172.17.0.1でDockerの仮想ネットワークインターフェイス(docker0)をリッスンするようにcntlm.confを変更しました。

Dockerも適切に構成されており、問題なくイメージをプルできます。 Anacondaイメージを使用してコンテナーをデプロイし、環境変数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',)))",),)
4
Iyán

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はcntlmプロキシの標準LAN IPである必要があります。

2
OscarAkaElvis