Prístup k proxy hostiteľa z Docker kontajnera v sieti bridge
Vyberte adresu proxy dosiahnuteľnú z kontajnera a rozlišujte verejný bod od proxy na hostiteľovi Dockeru.
V bežnom kontajneri v sieti bridge je 127.0.0.1 vlastná loopback adresa kontajnera. Proxy počúvajúce na localhoste notebooku automaticky nepočúva v každom kontajneri.
To vysvetľuje častý rozdiel: rovnaká URL proxy funguje v termináli hostiteľa, ale v kontajneri je spojenie odmietnuté. Adresa v každom mieste označuje iný sieťový koncový bod.
Verejné proxy možno použiť priamo
Ak je bod zo služby alebo zoznamu HTTP proxy skutočne dosiahnuteľnou verejnou IP, odovzdajte túto adresu aplikácii namiesto zmeny na localhost:
docker run --rm \
-e HTTP_PROXY=http://203.0.113.10:8080 \
-e HTTPS_PROXY=http://203.0.113.10:8080 \
your-image
Nahraďte dokumentačnú adresu a obraz. Program v obraze musí tieto premenné prostredia podporovať; Docker nezmení každý socket na požiadavku cez proxy len preto, že premenné existujú.
Ak proxy beží na hostiteľovi Dockeru
Docker Desktop poskytuje host.docker.internal pre prístup k vnútornej adrese hostiteľa. V podporovanej natívnej konfigurácii Engine môže mapovanie hostiteľa poskytnúť tento obvyklý názov:
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
To mení preklad názvov, nie je to príkaz na presmerovanie portov. V natívnom Linuxe môže služba viazaná iba na loopback hostiteľa zostať nedosiahnuteľná cez jeho bridge adresu. Listener, firewall aj trasa kontajnera musia spojenie povoliť. Zmenený listener obmedzte na potrebných klientov namiesto vytvorenia otvoreného proxy bez overovania.
Testujte z rovnakého miesta ako aplikácia
Výsledok curl na hostiteľovi testuje iba jeho trasu. Urobte požiadavku z prostredia kontajnera a overte, či dosiahne zamýšľaný bod.
„Hostiteľ“ tiež znamená počítač, na ktorom beží Docker Engine. Pri vzdialenom Engine to nemusí byť notebook. Loopback IP z miestnej desktopovej aplikácie preto veľmi pravdepodobne nebude bez zmeny fungovať na vzdialenom builderi či serveri.
Oddeľte problémy sťahovania obrazu: démon stiahne obraz skôr, než aplikácia môže použiť vyššie uvedené prostredie.