Սովորական bridge ցանցով կոնտեյների համար 127.0.0.1-ը հենց կոնտեյների loopback հասցեն է։ Նոթբուքի localhost-ում լսող պրոքսին ինքնաբերաբար չի լսում յուրաքանչյուր կոնտեյների ներսում։

Սա բացատրում է տարածված տարբերությունը․ նույն պրոքսիի URL-ը գործում է հոսթի տերմինալում, բայց կոնտեյներում կապը մերժվում է։ Հասցեն յուրաքանչյուր տեղում ցույց է տալիս ցանցի տարբեր վերջնակետ։

Հանրային պրոքսին կարելի է օգտագործել անմիջապես

Եթե ծառայությունից կամ HTTP պրոքսիների ցանկից ընտրված վերջնակետն իսկապես հասանելի հանրային IP է, այդ հասցեն փոխանցեք հավելվածին՝ localhost-ի վերածելու փոխարեն․

docker run --rm \
  -e HTTP_PROXY=http://203.0.113.10:8080 \
  -e HTTPS_PROXY=http://203.0.113.10:8080 \
  your-image

Փոխարինեք փաստաթղթավորման օրինակային հասցեն և image-ը։ Image-ի ներսի ծրագիրը դեռ պետք է աջակցի միջավայրի այդ փոփոխականներին․ Docker-ը ամեն socket չի դարձնում պրոքսիով հարցում միայն փոփոխականների առկայության պատճառով։

Եթե պրոքսին աշխատում է Docker հոսթի վրա

Docker Desktop-ը տրամադրում է host.docker.internal՝ հոսթի ներքին հասցեին հասնելու համար։ Աջակցվող բնիկ Engine կազմաձևում հոսթի համապատասխանեցումը կարող է ապահովել այդ ընդունված անունը․

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

Սա փոխում է անունների լուծումը․ պորտերի վերահասցեավորման հրաման չէ։ Բնիկ Linux-ում միայն հոսթի loopback հասցեին կապված ծառայությունը կարող է դեռ անհասանելի լինել հոսթի bridge հասցեով։ Լսող բաղադրիչը, հրապատը և կոնտեյների երթուղին պետք է թույլ տան այդ կապը։ Լսող բաղադրիչը փոխելիս այն սահմանափակեք հասանելիության կարիք ունեցող հաճախորդներով՝ առանց նույնականացման բաց պրոքսի ստեղծելու փոխարեն։

Փորձարկեք հավելվածի նույն միջավայրից

Հոսթի curl արդյունքը ստուգում է միայն հոսթի երթուղին։ Համապատասխան հարցումն ուղարկեք կոնտեյների միջավայրից և ստուգեք՝ արդյոք այն հասնում է նախատեսված վերջնակետին։

«Հոսթ» նշանակում է նաև Docker Engine-ն աշխատեցնող մեքենան։ Հեռավոր Engine-ի դեպքում դա պարտադիր չէ, որ ձեր նոթբուքը լինի։ Ուստի տեղային աշխատասեղանի հավելվածից պատճենված loopback IP-ի՝ հեռավոր կառուցման մեքենայի կամ սերվերի վրա անփոփոխ աշխատելու հավանականությունը հատկապես փոքր է։

Image-ի ներբեռնման խնդիրներն առանձնացրեք․ դեմոնը ներբեռնում է image-ը, նախքան հավելվածը կկարողանա օգտագործել վերևի միջավայրը։

Առնչվող հոդվածներ