CentOS Linux 7でdockerバージョン20.10.14を使用しています。dockerをインストールし、/usr/lib/systemd/system/docker.serviceにプロキシ設定をセットアップしました。プロキシ設定は次のとおりです。
Environment="HTTP_PROXY=http://10.330.100.100:3128/"
Environment="HTTPS_PROXY=https://10.330.100.100:3128/"
Environment=no_proxy=localhost,127.0.0.1
次のようなエラーが表示されます
Error response from daemon: Get "https://registry-1.docker.io/v2/": proxyconnect tcp: tls: first record does not look like a TLS handshake
HTTPS_PROXYをhttpsからhttpに変更すると、
Error response from daemon: Get "https://registry-1.docker.io/v2/": Bad Request
そして「https://registry-1.docker.io/v2/」をcurlしようとすると、
curl: (56) Received HTTP code 400 from proxy after CONNECT
答え1
Environment="HTTP_PROXY=http://10.330.100.100:3128/"
Environment="HTTPS_PROXY=https://10.330.100.100:3128/"
^ ^^^^
ここでは、プロキシサーバーをプレーンHTTPおよびHTTPSで利用できるように構成します。同じポートでそんなことが起こる可能性は極めて低い。
プロキシ サーバーが独自の TLS 証明書で構成されており、http と https で異なるポートをリッスンします。
または、通常はそうなりますが、プロキシ サーバーはプレーン HTTP 接続のみをサポートしており、HTTPS リソースへの要求では、プロキシ サーバーへの接続にプレーン HTTP を使用する必要があります。(プロキシに接続すると、クライアントは CONNECT メソッドを使用して、プロキシ経由で Web サーバーへの TLS 接続を確立し、エンドツーエンドの暗号化チャネルを作成します。)
つまり、HTTPS_PROXY 変数を次のように変更する必要がある可能性があります。
Environment="HTTPS_PROXY=http://10.330.100.100:3128/"
プロキシを使用する必要がある場合、多くの場合、TLS トラフィックも制御されます。組織の CA 証明書をインストールして有効にする必要がある場合があります。
プロキシの使用が求められる場合、組織内の他のユーザーも同様にプロキシを使用する必要があることを意味します。
つまり、あなた (またはプロキシ サーバー) は、すぐに Docker のレート制限に遭遇することになります。以下を参照してください。https://docs.docker.com/docker-hub/download-rate-limit/