アウトバウンド トラフィックにプロキシを使用する必要がある企業サーバーがあります。Microsoft の Docker ドキュメントに従って、Powershell コマンドを実行しました。
[Environment]::SetEnvironmentVariable("HTTP_PROXY", "http://my.secret.proxy.net:8888", [EnvironmentVariableTarget]::Machine)
[Environment]::SetEnvironmentVariable("HTTPS_PROXY", "https://my.secret.proxy.net:8888", [EnvironmentVariableTarget]::Machine)
Restart-Service docker
しかし、docker build
その後に を実行すると次のようになります:
Get https://registry-1.docker.io/v2/: proxyconnect tcp: tls: first record does not look like a TLS handshake
プロキシ アドレスなどにhttp
代わりに使用してみました。結果は同じです。プロキシは透過プロキシであり、何も「スマート」ではありません。https
実行はpip install flake8 --proxy=https://my.secret.proxy.net:8888
機能するので、プロキシが機能していることがわかります。
何かアイデアはありますか? さらにデバッグするためのヒントはありますか? ありがとうございます!
答え1
あなたの"HTTPS_PROXY", "https://my.secret.proxy.net:8888"
変更でhttps://
はhttp://
答え2
現在のバージョンのDocker for Windowsでは、リソース -> プロキシイメージのプルに使用するプロキシを構成する UI のセクション。
参照:https://docs.docker.com/config/daemon/systemd/#httphttps-proxy
実行中のコンテナでプロキシ変数を設定する必要があります。そのためには、次~/.docker/config.json
のように更新します。
{
"proxies":
{
"default":
{
"httpProxy": "http://192.168.1.12:3128",
"httpsProxy": "http://192.168.1.12:3128",
"noProxy": "*.test.example.com,.example2.com,127.0.0.0/8"
}
}
}
特に WSL2 を使用していない場合は、Windows 上でこのファイルがどこにあるのかわかりませんが、docker login
レジストリにログインした場合は、ファイルはすでに存在しているはずです。
参照:プロキシサーバ