CentOS 7に最新のDockerバージョン18.06.0をインストールしています。サーバーは企業ネットワークにあるため、プロキシサーバーを使用してレジストリにアクセスします。 Dockerのドキュメントに従ってプロキシ設定を追加しました。しかし、最終的にプロキシ設定を追加することは部分的に機能しました。つまり、dockerはプロキシを使用して、実行前にイメージをプルしています。
しかし、今では次のエラーが発生して失敗します:$ Sudo docker runhello-worldローカルでイメージ 'hello-world:latest'が見つかりませんdocker:デーモンからのエラー応答:Get https://registry-1.docker.io/v2 / :proxyconnect tcp:net/http:TLSハンドシェイクタイムアウト。
また、ログインは失敗します。$ Sudo docker login --username = XXXX Password:デーモンからのエラー応答:Get https://registry-1.docker.io/v2/ :proxyconnect tcp:EOF
私のプロキシはかなり高速です。 wgetまたはcurlを使用してインターネットから何かをダウンロードするためにそれを使用しているとき、90〜100Mbpsの速度が表示されます。 yumなどの私のマシン上の他のアプリケーションユーティリティはこのプロキシを完全に使用しており、うまく機能します。今では、Dockerだけがイメージのダウンロードに問題がある理由がわかりません。
インストールと構成の詳細は次のとおりです。
バージョン:
$ Sudo docker version
Client:
Version: 18.06.0-ce
API version: 1.38
Go version: go1.10.3
Git commit: 0ffa825
Built: Wed Jul 18 19:08:18 2018
OS/Arch: linux/AMD64
Experimental: false
サーバ:
Engine:
Version: 18.06.0-ce
API version: 1.38 (minimum version 1.12)
Go version: go1.10.3
Git commit: 0ffa825
Built: Wed Jul 18 19:10:42 2018
OS/Arch: linux/AMD64
Experimental: false
OSバージョン:
Description: CentOS Linux release 7.2.1511 (Core)
Release: 7.2.1511
Dockerプロキシ構成:
$ cat /etc/systemd/system/docker.service.d/https-proxy.conf
[Service]
Environment=“HTTP_PROXY=http://pqr.corp.xxx.com:8080”
Environment=“HTTPS_PROXY=https://pqr.corp.xxx.com:8080”
Environment=“NO_PROXY=localhost,127.0.0.1”
この構成を追加した後、私はすでに行っています
Sudo systemctl daemon-reload
Sudo systemctl restart docker
特定の助けを探しています。
TLSハンドシェイクタイムアウトの問題に関するほとんどの投稿を確認しましたが、回答や提案が得られませんでした。私のプロキシは問題なく、dockerはそれを使用しています。なぜその厄介なタイムアウトが発生するのかわかりません。
私の前の答えはこの方向を指していますが、どちらもそれを明確に述べていません:すべてのhttpsプロキシ設定を削除するとこの問題が解決します。私はhttps-proxy.conf
を持っていましたOPと同じようにファイルを作成し、docker pull
行を削除した後にHTTPS_PROXY
が機能し始めました。私が使用しているhttpsプロキシは問題なく機能することを知っているので、Docker側で問題になるはずです。
私はこの解決策を見つけました serverfaultで 。
理由は通常、ネットワーク設定に関連しています。特に、Dockerがプロキシで設定されている場合は、「プロキシなし」オプションを使用して一時的に作成すると、機能するはずです。
乾杯
設定ファイルは次のとおりです。
[Service]
Environment=“HTTP_PROXY=http://pqr.corp.xxx.com:8080”
Environment=“HTTPS_PROXY=https://pqr.corp.xxx.com:8080”
Environment=“NO_PROXY=localhost,127.0.0.1”
3行目に注意してください:HTTPS_PROXY = https
プロキシサーバーはHTTPSをサポートしていますか?または、エラーがあるはずです。
多分 HTTPS_PROXY=http
正しい。
ちなみに、同様のエラーはGet https://registry-1.docker.io/v2/: proxyconnect tcp: EOF
ファイアウォールの背後でも同じ問題に直面していました。以下の手順に従ってください。
$ Sudo vim /etc/systemd/system/docker.service.d/http_proxy.conf
[Service]
Environment=“HTTP_PROXY=http://username:password@IP:port/”
Https_prxoy.confファイルを使用または削除しないでください。
dockerをリロードして再起動します
$ Sudo systemctl daemon-reload
$ Sudo systemctl restart docker
$ docker pull hello-world
Using default tag: latest
latest: Pulling from library/hello-world
1b930d010525: Pull complete
Digest: sha256:2557*********************************8
Status: Downloaded newer image for hello-world:latest