Wie erfolgt die Authentifizierung bei der Verbindung mit einem Proxyserver in einem Ubuntu-basierten Docker-Container?

Wie erfolgt die Authentifizierung bei der Verbindung mit einem Proxyserver in einem Ubuntu-basierten Docker-Container?

Ich baue einen Docker-Container, der beim Senden von HTTP-Anfragen einen Proxyserver verwenden soll. Leider gelingt es mir nicht, ihn zum Laufen zu bringen – ich kann mich innerhalb des Containers nicht beim Proxy authentifizieren, obwohl die Anmeldeinformationen korrekt sind.

Das erwartete Ergebnis curl https://api.myip.comgibt eine JSON-Antwort mit der IP des Proxys zurück.

Tatsächliches Ergebnis: curl https://api.myip.comRenditencurl: (56) Received HTTP code 407 from proxy after CONNECT

Was ich versucht habe:

  • Festlegen von HTTP_PROXY-Umgebungsvariablen (dasselbe gilt für die HTTPS-Umgebung)
  • Hinzufügen der Zeichenfolge „Acquire::http::Proxy“ zu /etc/apt/apt.conf (dasselbe gilt für https)
  • verschiedene Konfigurationen probiert (nur ENV, nur apt.conf-Datei, beides)

Was ich überprüft habe:

  • /etc/apt/apt.conf enthält die gewünschten Zeilen (siehe unten)
  • ENVs werden im Container korrekt eingestellt
  • Proxy funktioniert außerhalb des Containers ordnungsgemäß
  • Die Proxy-Authentifizierung funktioniert ordnungsgemäß (Autorisierung erfolgreich) über einen Browser, der von außerhalb des Containers ausgeführt wird
  • Docker-Netzwerk funktioniert ordnungsgemäß (keine Probleme, wenn kein Proxy verwendet wird)

meine apt.conf:

Acquire::http::Proxy "http://<my_login>:<my_pass>@<proxy_ip>:<proxy_port>/";
Acquire::https::Proxy "https://<my_login>:<my_pass>@<proxy_ip>:<proxy_port>/";
Acquire::socks::Proxy "socks://<my_login>:<my_pass>@<proxy_ip>:<proxy_port>/";

mein Dockerfile:

from ubuntu:latest

COPY ./rss/apt.conf /apt.conf
ENV HTTP_PROXY=<ip>:<port>
ENV HTTPS_PROXY=<ip>:<port>

RUN apt update && apt install -y curl
RUN cat /apt.conf >> /etc/apt/apt.conf

ENTRYPOINT ["sleep","1000"]

Docker-Version: Docker version 20.10.8, build 3967b7d

verwandte Informationen