Qasja te proxy i hostit nga një kontejner Docker bridge
Zgjidhni një adresë proxy të arritshme nga kontejneri dhe dalloni një pikë fundore publike nga proxy në hostin Docker.
Në një kontejner të zakonshëm me rrjet bridge, 127.0.0.1 është adresa loopback e vetë kontejnerit. Një proxy që dëgjon në localhost të laptopit nuk dëgjon automatikisht brenda çdo kontejneri.
Kjo shpjegon një ndryshim të shpeshtë: e njëjta URL proxy funksionon në terminalin e hostit, por lidhja refuzohet brenda kontejnerit. Adresa i referohet një pike fundore të ndryshme rrjeti në secilin vend.
Një proxy publik mund të përdoret drejtpërdrejt
Nëse pika fundore e zgjedhur nga një shërbim ose lista e proxy-ve HTTP është vërtet një IP publike e arritshme, jepjani atë adresë aplikacionit në vend që ta ktheni në localhost:
docker run --rm \
-e HTTP_PROXY=http://203.0.113.10:8080 \
-e HTTPS_PROXY=http://203.0.113.10:8080 \
your-image
Zëvendësoni adresën shembull të dokumentacionit dhe imazhin. Programi brenda imazhit ende duhet t’i mbështesë këto ndryshore mjedisi; Docker nuk e kthen çdo socket në kërkesë përmes proxy vetëm sepse ndryshoret ekzistojnë.
Nëse proxy ekzekutohet në hostin Docker
Docker Desktop ofron host.docker.internal për të arritur adresën e brendshme të hostit. Në një konfigurim të mbështetur të Engine vendas, një hartëzim hosti mund të japë këtë emër të zakonshëm:
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
Kjo ndryshon zgjidhjen e emrave; nuk është komandë për ridrejtim portash. Në Linux vendas, një shërbim i lidhur vetëm me loopback të hostit mund të mbetet i paarritshëm përmes adresës bridge të hostit. Dëgjuesi, muri mbrojtës dhe rruga e kontejnerit duhet ta lejojnë lidhjen. Nëse ndryshoni dëgjuesin, kufizojeni te klientët që kanë nevojë për qasje në vend që të krijoni proxy të hapur pa autentikim.
Testoni nga i njëjti vend si aplikacioni
Një rezultat curl në host teston vetëm rrugën e hostit. Kryeni kërkesën përkatëse nga mjedisi i kontejnerit dhe kontrolloni nëse arrin pikën fundore të synuar.
“Host” do të thotë edhe makina që ekzekuton Docker Engine. Me një Engine në largësi, kjo nuk është domosdoshmërisht laptopi juaj. Prandaj ka veçanërisht pak gjasa që një IP loopback e kopjuar nga një aplikacion desktop lokal të funksionojë e pandryshuar në një ndërtues ose server në largësi.
Mbajini të ndara problemet e shkarkimit të imazhit: daemon-i shkarkon imazhin para se aplikacioni të mund të përdorë mjedisin e treguar më sipër.