För en vanlig container med bridgenätverk är 127.0.0.1 containerns egen loopbackadress. En proxy på localhost i din bärbara lyssnar inte automatiskt inne i varje container.

Det förklarar en vanlig skillnad: samma proxy-URL fungerar i värdterminalen men ger nekad anslutning i containern. Adressen avser olika nätverksslutpunkter på varje plats.

En offentlig proxy kan användas direkt

Om slutpunkten från en tjänst eller HTTP-proxylistan verkligen är en nåbar offentlig IP, ge adressen till programmet i stället för att ändra den till localhost:

docker run --rm \
  -e HTTP_PROXY=http://203.0.113.10:8080 \
  -e HTTPS_PROXY=http://203.0.113.10:8080 \
  your-image

Byt dokumentationsadressen och imagen. Programmet i imagen måste fortfarande stödja miljövariablerna; Docker gör inte varje socket till en proxybegäran bara för att variablerna finns.

Om proxyn körs på Docker-värden

Docker Desktop tillhandahåller host.docker.internal för att nå värdens interna adress. I en native Engine-uppsättning som stöds kan en värdmappning ge detta vedertagna namn:

docker run --rm \
  --add-host host.docker.internal=host-gateway \
  -e HTTP_PROXY=http://host.docker.internal:8080 \
  -e HTTPS_PROXY=http://host.docker.internal:8080 \
  your-image

Det ändrar namnuppslagning, inte portvidarebefordran. På native Linux kan en tjänst bunden bara till värdens loopback fortfarande vara onåbar via värdens bridgeadress. Lyssnare, brandvägg och containerrutt måste tillåta anslutningen. Begränsa en ändrad lyssnare till nödvändiga klienter i stället för att skapa en öppen proxy utan autentisering.

Testa från samma plats som programmet

Ett curl-resultat på värden testar bara värdrutten. Gör begäran från containermiljön och kontrollera om avsedd slutpunkt nås.

‘Värd’ betyder också maskinen som kör Docker Engine. Med en fjärransluten Engine är det inte nödvändigtvis din bärbara. En loopback-IP från en lokal skrivbordsapp har därför särskilt liten sannolikhet att fungera oförändrad på en fjärransluten byggare eller server.

Håll problem med image-pull åtskilda: demonen laddar ner imagen innan programmet kan använda miljön ovan.

Relaterade artiklar