Docker kann keine Bilder hinter den Proxyserver ziehen

Docker kann keine Bilder hinter den Proxyserver ziehen

ich verwende Docker Version 20.10.14 mit CentOS Linux 7, ich habe gerade Docker installiert und die Proxy-Einstellungen in /usr/lib/systemd/system/docker.service eingerichtet und meine Proxy-Einstellungen sind

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

ich bekomme eine Fehlermeldung wie

Error response from daemon: Get "https://registry-1.docker.io/v2/": proxyconnect tcp: tls: first record does not look like a TLS handshake

und wenn ich HTTPS_PROXY von https --> http ändere, bekomme ich

Error response from daemon: Get "https://registry-1.docker.io/v2/": Bad Request

und beim Versuch, "https://registry-1.docker.io/v2/" zu curlen, erhalte ich

curl: (56) Received HTTP code 400 from proxy after CONNECT

Antwort1

Environment="HTTP_PROXY=http://10.330.100.100:3128/"
Environment="HTTPS_PROXY=https://10.330.100.100:3128/"
                             ^                  ^^^^

Hier konfigurieren Sie Ihren Proxyserver so, dass er über einfaches HTTP und HTTPS verfügbar ist.auf dem gleichen Port. Das ist höchst unwahrscheinlich.

Entweder ist Ihr Proxyserver mit einem eigenen TLS-Zertifikat konfiguriert und lauscht auf unterschiedlichen Ports auf http und https.

Oder, und das ist normalerweise der Fall, der Proxyserver unterstützt nur einfache HTTP-Verbindungen und Anfragen an HTTPS-Ressourcen müssen weiterhin einfaches HTTP verwenden, um die Verbindung zum Proxyserver herzustellen. (Sobald eine Verbindung zum Proxy besteht, verwendet der Client die CONNECT-Methode, um über den Proxy eine TLS-Verbindung zum Webserver herzustellen, wodurch ein durchgängig verschlüsselter Kanal erstellt wird.)

Mit anderen Worten: Sie müssen wahrscheinlich die Variable HTTPS_PROXY wie folgt ändern:

Environment="HTTPS_PROXY=http://10.330.100.100:3128/"

Wenn Sie einen Proxy verwenden müssen, bedeutet das oft, dass auch der TLS-Verkehr kontrolliert wird. Möglicherweise müssen Sie das CA-Zertifikat Ihrer Organisation installieren und aktivieren.


Wenn Sie einen Proxy verwenden müssen, bedeutet dies, dass andere in Ihrer Organisation dasselbe tun müssen.

Das bedeutet, dass Sie (oder vielmehr Ihr Proxyserver) sehr schnell auf die Ratenbegrenzung von Docker stoßen werden. Siehe:https://docs.docker.com/docker-hub/download-rate-limit/

verwandte Informationen