Gazdagépen futó proxy elérése Docker bridge konténerből
Válasszon a konténerből elérhető proxycímet, és különböztesse meg a nyilvános végpontot a Docker gazdagépén futó proxytól.
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.