Voor een gewone container met bridgenetwerk is 127.0.0.1 het eigen loopbackadres van de container. Een proxy op localhost van je laptop luistert niet automatisch in elke container.

Dat verklaart een veelvoorkomend verschil: dezelfde proxy-URL werkt in de hostterminal maar geeft verbinding geweigerd in de container. Het adres verwijst op beide plekken naar een ander netwerkeindpunt.

Een openbare proxy kan direct worden gebruikt

Is het eindpunt uit een dienst of de HTTP-proxylijst echt een bereikbaar openbaar IP, geef dat adres dan aan de toepassing in plaats van het in localhost te veranderen:

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

Vervang het documentatieadres en de image. Het programma in de image moet deze omgevingsvariabelen nog steeds ondersteunen; Docker maakt niet elke socket tot een proxyverzoek enkel omdat ze bestaan.

Als de proxy op de Docker-host draait

Docker Desktop biedt host.docker.internal om het interne hostadres te bereiken. In een ondersteunde native Engine-opstelling kan een hostkoppeling die gebruikelijke naam leveren:

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

Dit verandert naamomzetting, niet poortdoorsturing. Op native Linux kan een dienst die alleen aan hostloopback is gebonden via het bridgeadres onbereikbaar blijven. Listener, firewall en containerroute moeten de verbinding toestaan. Beperk een gewijzigde listener tot de benodigde clients in plaats van een open proxy zonder authenticatie te maken.

Test op dezelfde plek als de toepassing

Een curl-resultaat op de host test alleen de hostroute. Doe het relevante verzoek vanuit de containeromgeving en kijk of het bedoelde eindpunt bereikt wordt.

‘Host’ betekent ook de machine waarop Docker Engine draait. Bij een externe Engine is dat niet noodzakelijk je laptop. Een loopback-IP uit een lokale desktopapp werkt daarom juist waarschijnlijk niet ongewijzigd op een externe builder of server.

Houd image-pullproblemen apart: de daemon downloadt de image voordat de toepassing de bovenstaande omgeving kan gebruiken.

Gerelateerde artikelen