Abutin ang proxy ng host mula sa Docker bridge container
Pumili ng proxy address na naaabot ng container at ibukod ang pampublikong endpoint sa proxy na tumatakbo sa Docker host.
Sa karaniwang container na nasa bridge network, ang 127.0.0.1 ay sariling loopback address ng container. Ang proxy na nakikinig sa localhost ng laptop ay hindi awtomatikong nakikinig sa loob ng bawat container.
Ipinapaliwanag nito ang karaniwang pagkakaiba: gumagana ang parehong proxy URL sa terminal ng host pero tinatanggihan ang koneksiyon sa loob ng container. Ibang network endpoint ang tinutukoy ng address sa bawat lugar.
Maaaring direktang gamitin ang pampublikong proxy
Kung ang endpoint mula sa isang serbisyo o sa listahan ng HTTP proxy ay talagang naaabot na pampublikong IP, ibigay ang address na iyon sa application sa halip na palitan ito ng localhost:
docker run --rm \
-e HTTP_PROXY=http://203.0.113.10:8080 \
-e HTTPS_PROXY=http://203.0.113.10:8080 \
your-image
Palitan ang halimbawang address sa dokumentasyon at ang image. Kailangan pa ring suportahan ng programa sa image ang mga environment variable na ito; hindi ginagawang proxied request ng Docker ang bawat socket dahil lamang umiiral ang mga variable.
Kung tumatakbo ang proxy sa Docker host
Nagbibigay ang Docker Desktop ng host.docker.internal para maabot ang panloob na address ng host. Sa suportadong native Engine setup, maaaring ibigay ng host mapping ang nakasanayang pangalang ito:
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
Binabago nito ang name resolution; hindi ito utos para sa port forwarding. Sa native Linux, maaaring hindi pa rin maabot sa bridge address ng host ang serbisyong nakatali lang sa loopback nito. Dapat payagan ng listener, firewall, at ruta ng container ang koneksiyon. Kung babaguhin ang listener, limitahan ito sa mga client na nangangailangan ng access sa halip na gumawa ng bukas na proxy na walang authentication.
Magsuri mula sa parehong lugar ng application
Ang resulta ng curl sa host ay ruta lang ng host ang sinusuri. Gawin ang kaugnay na request mula sa kapaligiran ng container at tingnan kung umaabot ito sa nilalayong endpoint.
Ang “host” ay nangangahulugan din ng makinang nagpapatakbo ng Docker Engine. Sa remote Engine, hindi ito palaging ang laptop mo. Kaya lalo nang maliit ang posibilidad na gumana nang walang pagbabago sa remote builder o server ang loopback IP na kinopya mula sa lokal na desktop application.
Ihiwalay ang mga problema sa pag-download ng image: dina-download ng daemon ang image bago magamit ng application ang kapaligirang ipinakita sa itaas.