Nå en vertsproxy fra en Docker-bridgecontainer
Velg en proxyadresse containeren kan nå, og skill et offentlig endepunkt fra en proxy på Docker-verten.
For en vanlig container med bridgenettverk er 127.0.0.1 containerens egen loopbackadresse. En proxy på localhost på den bærbare lytter ikke automatisk inne i alle containere.
Dette forklarer et vanlig sprik: Samme proxy-URL virker i vertsterminalen, men gir avvist forbindelse i containeren. Adressen viser til forskjellige nettverksendepunkter på hvert sted.
En offentlig proxy kan brukes direkte
Er endepunktet fra en tjeneste eller HTTP-proxylisten virkelig en tilgjengelig offentlig IP, gi adressen til programmet i stedet for å endre den til localhost:
docker run --rm \
-e HTTP_PROXY=http://203.0.113.10:8080 \
-e HTTPS_PROXY=http://203.0.113.10:8080 \
your-image
Bytt dokumentasjonsadressen og imaget. Programmet i imaget må fortsatt støtte miljøvariablene; Docker gjør ikke hver socket til en proxyforespørsel bare fordi variablene finnes.
Hvis proxien kjører på Docker-verten
Docker Desktop tilbyr host.docker.internal for å nå vertens interne adresse. I et støttet native Engine-oppsett kan en vertstilordning gi dette vanlige navnet:
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
Dette endrer navneoppløsning, ikke portvideresending. På native Linux kan en tjeneste bundet bare til vertens loopback fortsatt være utilgjengelig via vertens bridgeadresse. Lytter, brannmur og containerrute må tillate forbindelsen. Begrens en endret lytter til nødvendige klienter fremfor å lage en åpen proxy uten autentisering.
Test fra samme sted som programmet
Et curl-resultat på verten tester bare vertsruten. Gjør forespørselen fra containermiljøet og sjekk om riktig endepunkt nås.
‘Vert’ betyr også maskinen som kjører Docker Engine. Med en ekstern Engine er det ikke nødvendigvis den bærbare din. En loopback-IP fra et lokalt skrivebordsprogram er derfor særlig lite sannsynlig å fungere uendret på en ekstern builder eller server.
Hold image-pull-problemer atskilt: daemonen laster ned imaget før programmet kan bruke miljøet ovenfor.