web-dev-qa-db-ja.com

DockerがプロキシTLSハンドシェイクタイムアウトの背後でイメージをプルできない

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はそれを使用しています。なぜその厄介なタイムアウトが発生するのかわかりません。

3
Akshay Hiremath

私の前の答えはこの方向を指していますが、どちらもそれを明確に述べていません:すべてのhttpsプロキシ設定を削除するとこの問題が解決します。私はhttps-proxy.confを持っていましたOPと同じようにファイルを作成し、docker pull行を削除した後にHTTPS_PROXYが機能し始めました。私が使用しているhttpsプロキシは問題なく機能することを知っているので、Docker側で問題になるはずです。

私はこの解決策を見つけました serverfaultで

1
zslim

理由は通常、ネットワーク設定に関連しています。特に、Dockerがプロキシで設定されている場合は、「プロキシなし」オプションを使用して一時的に作成すると、機能するはずです。

乾杯

1
zhrist

設定ファイルは次のとおりです。

[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

0
sg qy

ファイアウォールの背後でも同じ問題に直面していました。以下の手順に従ってください。

$ 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
0
abhishek pant