Pristup proxyju hosta iz Docker bridge kontejnera
Izaberite proxy adresu dostupnu kontejneru i razlikujte javnu tač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 laptopa 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 tačku.
Javni proxy može se koristiti direktno
Ako je tačka iz usluge ili s liste HTTP proxyja zaista dostupni 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 nativnoj 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 nativnom Linuxu usluga vezana samo za loopback hosta može ostati nedostupna kroz njegovu bridge adresu. Osluškivač, firewall 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 tačke.
„Host“ znači i mašinu na kojoj radi Docker Engine. Kod udaljenog Enginea to nije nužno laptop. Loopback IP iz lokalne desktop aplikacije zato ima posebno male šanse raditi nepromijenjen na udaljenom builderu ili serveru.
Odvojite probleme preuzimanja slike: daemon preuzima sliku prije nego aplikacija može koristiti prikazano okruženje.