Piekļuve resursdatora starpniekserverim no Docker bridge konteinera
Izvēlieties konteineram sasniedzamu starpniekservera adresi un atšķiriet publisku galapunktu no starpniekservera Docker resursdatorā.
Parastā bridge tīkla konteinerā 127.0.0.1 ir paša konteinera atgriezeniskās saites adrese. Starpniekserveris, kas klausās klēpjdatora localhost adresē, automātiski neklausās katrā konteinerā.
Tas izskaidro biežu atšķirību: tas pats starpniekservera URL darbojas resursdatora terminālī, bet konteinerā savienojums tiek atteikts. Katrā vietā adrese norāda uz citu tīkla galapunktu.
Publisku starpniekserveri var izmantot tieši
Ja no pakalpojuma vai HTTP starpniekserveru saraksta izvēlētais galapunkts tiešām ir sasniedzama publiska IP adrese, nododiet šo adresi lietotnei, nevis pārveidojiet to par localhost:
docker run --rm \
-e HTTP_PROXY=http://203.0.113.10:8080 \
-e HTTPS_PROXY=http://203.0.113.10:8080 \
your-image
Aizstājiet dokumentācijas piemēra adresi un attēlu. Programmai attēlā joprojām jāatbalsta šie vides mainīgie; Docker nepārvērš katru ligzdu par pieprasījumu caur starpniekserveri tikai tāpēc, ka mainīgie pastāv.
Ja starpniekserveris darbojas Docker resursdatorā
Docker Desktop nodrošina host.docker.internal, lai sasniegtu resursdatora iekšējo adresi. Atbalstītā vietējā Engine konfigurācijā šo ierasto nosaukumu var nodrošināt resursdatora kartējums:
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
Tas maina nosaukumu atrisināšanu; tā nav portu pārsūtīšanas komanda. Vietējā Linux pakalpojums, kas piesaistīts tikai resursdatora atgriezeniskās saites adresei, joprojām var nebūt sasniedzams caur resursdatora bridge adresi. Klausītājam, ugunsmūrim un konteinera maršrutam jāatļauj savienojums. Ja maināt klausītāju, ierobežojiet to līdz klientiem, kam vajadzīga piekļuve, nevis izveidojiet atvērtu starpniekserveri bez autentifikācijas.
Pārbaudiet no tās pašas vietas, kur darbojas lietotne
curl rezultāts resursdatorā pārbauda tikai resursdatora maršrutu. Izpildiet attiecīgo pieprasījumu no konteinera vides un pārbaudiet, vai tas sasniedz paredzēto galapunktu.
„Resursdators“ nozīmē arī mašīnu, kurā darbojas Docker Engine. Ar attālinātu Engine tas ne vienmēr ir jūsu klēpjdators. Tāpēc ir īpaši maz ticams, ka no vietējas darbvirsmas lietotnes kopēta atgriezeniskās saites IP adrese bez izmaiņām darbosies attālinātā būvētājā vai serverī.
Attēla lejupielādes problēmas izskatiet atsevišķi: dēmons lejupielādē attēlu, pirms lietotne var izmantot iepriekš parādīto vidi.