Pristup proxyju hosta iz Docker bridge kontejnera
Odaberite proxy adresu dostupnu kontejneru i razlikujte javnu točku od proxyja koji radi na Docker hostu.
Za običan kontejner u bridge mreži 127.0.0.1 je vlastita loopback adresa kontejnera. Proxy na localhostu prijenosnog računala ne osluškuje automatski u svakom kontejneru.
To objašnjava čestu razliku: isti proxy URL radi u terminalu hosta, ali u kontejneru daje odbijenu vezu. Adresa na svakom mjestu označava drugu mrežnu točku.
Javni proxy može se koristiti izravno
Ako je točka iz usluge ili s popisa HTTP proxyja doista dostupan javni IP, predajte adresu aplikaciji umjesto promjene u localhost:
docker run --rm \
-e HTTP_PROXY=http://203.0.113.10:8080 \
-e HTTPS_PROXY=http://203.0.113.10:8080 \
your-image
Zamijenite dokumentacijsku adresu i sliku. Program u slici i dalje mora podržavati varijable okruženja; Docker ne pretvara svaki socket u proxy zahtjev samo zato što varijable postoje.
Ako proxy radi na Docker hostu
Docker Desktop pruža host.docker.internal za pristup internoj adresi hosta. U podržanoj izvornoj Engine konfiguraciji mapiranje hosta može dati taj uobičajeni naziv:
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 mijenja razrješavanje naziva, nije naredba za prosljeđivanje porta. Na izvornom Linuxu usluga vezana samo za loopback hosta može ostati nedostupna kroz njegovu bridge adresu. Osluškivač, vatrozid i ruta kontejnera moraju dopustiti vezu. Ako mijenjate osluškivač, ograničite ga na potrebne klijente umjesto stvaranja otvorenog proxyja bez autentifikacije.
Testirajte s istog mjesta kao aplikacija
curl rezultat na hostu testira samo rutu hosta. Izvršite zahtjev iz okruženja kontejnera i provjerite dolazi li do predviđene točke.
„Host“ znači i računalo na kojem radi Docker Engine. Kod udaljenog Enginea to nije nužno prijenosno računalo. Loopback IP iz lokalne desktop aplikacije zato ima posebno male šanse raditi nepromijenjen na udaljenom builderu ili poslužitelju.
Odvojite probleme preuzimanja slike: daemon preuzima sliku prije nego aplikacija može koristiti prikazano okruženje.