Dostop do posrednika na gostitelju iz vsebnika Docker v omrežju bridge
Izberite naslov posrednika, dosegljiv iz vsebnika, in ločite javno končno točko od posrednika na gostitelju Docker.
Za običajen vsebnik v omrežju bridge je 127.0.0.1 njegov lastni povratni naslov. Posrednik, ki posluša na localhost vašega prenosnika, ne posluša samodejno v vsakem vsebniku.
To pojasni pogosto razliko: isti URL posrednika deluje v terminalu gostitelja, v vsebniku pa je povezava zavrnjena. Naslov na vsakem mestu označuje drugo omrežno končno točko.
Javni posrednik lahko uporabite neposredno
Če je končna točka iz storitve ali s seznama posrednikov HTTP res dosegljiv javni IP, ta naslov podajte aplikaciji, ne spreminjajte ga v localhost:
docker run --rm \
-e HTTP_PROXY=http://203.0.113.10:8080 \
-e HTTPS_PROXY=http://203.0.113.10:8080 \
your-image
Zamenjajte dokumentacijski naslov in sliko. Program v sliki mora še vedno podpirati te okoljske spremenljivke; Docker zgolj zaradi njihovega obstoja ne spremeni vsake vtičnice v zahtevo prek posrednika.
Če posrednik deluje na gostitelju Docker
Docker Desktop zagotavlja host.docker.internal za dostop do notranjega naslova gostitelja. V podprti izvorni postavitvi Engine lahko to običajno ime zagotovi preslikava gostitelja:
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 spremeni razreševanje imen; ni ukaz za posredovanje vrat. V izvornem Linuxu je storitev, vezana samo na povratni naslov gostitelja, morda še vedno nedosegljiva prek njegovega naslova bridge. Poslušalec, požarni zid in pot vsebnika morajo dovoliti povezavo. Če spremenite poslušalca, ga omejite na odjemalce, ki potrebujejo dostop, namesto da ustvarite odprt posrednik brez preverjanja pristnosti.
Preizkusite z istega mesta kot aplikacija
Rezultat curl na gostitelju preveri le gostiteljevo pot. Ustrezno zahtevo izvedite iz okolja vsebnika in preverite, ali doseže predvideno končno točko.
»Gostitelj« pomeni tudi računalnik, ki izvaja Docker Engine. Pri oddaljenem Engine to ni nujno vaš prenosnik. Zato je posebej malo verjetno, da bo povratni IP iz lokalne namizne aplikacije nespremenjen deloval na oddaljenem graditelju ali strežniku.
Težave s prenosom slik obravnavajte ločeno: demon prenese sliko, preden lahko aplikacija uporabi zgornje okolje.