Ich habe einen Unternehmensserver, der für ausgehenden Datenverkehr einen Proxy verwenden muss. Gemäß der Docker-Dokumentation von Microsoft habe ich Powershell-Befehle ausgeführt:
[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
aber wenn ich docker build
danach ein ausführe, bekomme ich:
Get https://registry-1.docker.io/v2/: proxyconnect tcp: tls: first record does not look like a TLS handshake
Ich habe versucht, http
stattdessen https
für die Proxy-Adressen usw. zu verwenden. Gleiches Ergebnis. Der Proxy ist ein transparenter Proxy und macht nichts „Intelligentes“.
Das Ausführen pip install flake8 --proxy=https://my.secret.proxy.net:8888
funktioniert, also weiß ich, dass der Proxy funktioniert.
Irgendwelche Ideen? Irgendwelche Tipps zum weiteren Debuggen? Danke!
Antwort1
In Ihrer "HTTPS_PROXY", "https://my.secret.proxy.net:8888"
Änderung https://
zuhttp://
Antwort2
Mit der aktuellen Version von Docker für Windows gibt es eineRessourcen -> ProxysAbschnitt der Benutzeroberfläche, in dem Sie Proxys zum Abrufen von Bildern konfigurieren.
Referenz:https://docs.docker.com/config/daemon/systemd/#httphttps-proxy
Sie müssen in laufenden Containern noch Proxy-Variablen konfigurieren. Dazu können Sie ~/.docker/config.json
Folgendes aktualisieren:
{
"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"
}
}
}
Ich bin nicht sicher, wo sich dies unter Windows befindet, insbesondere wenn Sie WSL2 nicht verwenden, aber die Datei sollte bereits vorhanden sein, wenn Sie sich docker login
bei einem Register angemeldet haben.