Egy szokásos bridge hálózatú konténerben a 127.0.0.1 a konténer saját visszacsatolási címe. A laptop localhost címén figyelő proxy nem figyel automatikusan minden konténerben.

Ez magyarázza a gyakori eltérést: ugyanaz a proxy-URL működik a gazdagép termináljában, a konténerben viszont a kapcsolatot elutasítják. A cím a két helyen más hálózati végpontra utal.

A nyilvános proxy közvetlenül használható

Ha egy szolgáltatásból vagy a HTTP-proxylistából kiválasztott végpont valóban elérhető nyilvános IP-cím, ezt adja át az alkalmazásnak, ne alakítsa localhost címmé:

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

Cserélje ki a dokumentációs címet és az image-et. Az image programjának továbbra is támogatnia kell ezeket a környezeti változókat; a Docker pusztán a változók létezésétől nem irányít minden socketet proxyn keresztül.

Ha a proxy a Docker gazdagépén fut

A Docker Desktop a host.docker.internal nevet biztosítja a gazdagép belső címének eléréséhez. Támogatott natív Engine-beállítás esetén gazdagép-hozzárendeléssel is megadható ez a megszokott név:

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

Ez a névfeloldást módosítja, nem porttovábbítási parancs. Natív Linuxon a csak a gazdagép visszacsatolási címére kötött szolgáltatás a gazdagép bridge-címén továbbra is elérhetetlen lehet. A figyelőnek, a tűzfalnak és a konténer útvonalának engednie kell a kapcsolatot. Ha módosítja a figyelőt, korlátozza a hozzáférést az azt igénylő kliensekre, ahelyett hogy hitelesítés nélküli nyílt proxyt hozna létre.

Az alkalmazással azonos helyről teszteljen

A gazdagépen futtatott curl csak a gazdagép útvonalát teszteli. A megfelelő kérést a konténer környezetéből küldje, és ellenőrizze, hogy eléri-e a kívánt végpontot.

A „gazdagép” a Docker Engine-t futtató gépet is jelenti. Távoli Engine esetén ez nem feltétlenül a laptopja. Ezért különösen kevéssé valószínű, hogy egy helyi asztali alkalmazásból másolt visszacsatolási IP változatlanul működjön távoli builderen vagy szerveren.

Az image-letöltési problémákat kezelje külön: a démon azelőtt tölti le az image-et, hogy az alkalmazás használhatná a fenti környezetet.

Kapcsolódó cikkek