ပုံမှန် bridge ကွန်ရက်သုံး ကွန်တိန်နာတွင် 127.0.0.1 သည် ကွန်တိန်နာကိုယ်တိုင်၏ loopback လိပ်စာဖြစ်သည်။ လက်ပ်တော့၏ localhost တွင် နားထောင်နေသော ပရောက်စီသည် ကွန်တိန်နာတိုင်းအတွင်း အလိုအလျောက် နားထောင်နေခြင်းမဟုတ်ပါ။

ဤအချက်က အဖြစ်များသော ကွာခြားချက်ကို ရှင်းပြသည်။ တူညီသော ပရောက်စီ URL သည် host terminal တွင် အလုပ်လုပ်သော်လည်း ကွန်တိန်နာတွင် ချိတ်ဆက်မှု ငြင်းပယ်ခံရသည်။ နေရာတစ်ခုစီတွင် ထိုလိပ်စာက မတူညီသော ကွန်ရက် endpoint ကို ညွှန်းသည်။

အများသုံး ပရောက်စီကို တိုက်ရိုက်သုံးနိုင်သည်

ဝန်ဆောင်မှု သို့မဟုတ် HTTP ပရောက်စီစာရင်းမှ ရွေးထားသော endpoint သည် အမှန်တကယ် ရောက်ရှိနိုင်သော အများသုံး 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 အတွင်းရှိ ပရိုဂရမ်က ဤ environment variable များကို ပံ့ပိုးရန် လိုအပ်နေဆဲဖြစ်သည်။ variable များရှိရုံဖြင့် Docker က socket တိုင်းကို ပရောက်စီမှတစ်ဆင့် တောင်းဆိုမှုအဖြစ် မပြောင်းပေးပါ။

ပရောက်စီသည် Docker host ပေါ်တွင် အလုပ်လုပ်နေလျှင်

Docker Desktop က host ၏ အတွင်းလိပ်စာသို့ ရောက်ရန် host.docker.internal ကို ပေးသည်။ ပံ့ပိုးထားသော native Engine ပြင်ဆင်မှုတွင် host mapping ဖြင့် ဤသုံးနေကျအမည်ကို ပေးနိုင်သည်။

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

ဤအရာက အမည်ဖြေရှင်းမှုကို ပြောင်းခြင်းဖြစ်ပြီး port forwarding command မဟုတ်ပါ။ native Linux တွင် host ၏ loopback ကိုသာ bind လုပ်ထားသော ဝန်ဆောင်မှုသည် host ၏ bridge လိပ်စာမှ ရောက်ရှိမရနိုင်သေးပါ။ နားထောင်သည့်အစိတ်အပိုင်း၊ firewall နှင့် ကွန်တိန်နာလမ်းကြောင်းတို့က ချိတ်ဆက်မှုကို ခွင့်ပြုရမည်။ နားထောင်သည့်အစိတ်အပိုင်းကို ပြောင်းလျှင် အထောက်အထားစစ်ဆေးခြင်းမရှိသော ဖွင့်ထားသည့်ပရောက်စီ ဖန်တီးမည့်အစား ဝင်ရောက်ရန်လိုသော client များကိုသာ ကန့်သတ်ပါ။

အက်ပ်နှင့် နေရာတူမှ စမ်းသပ်ပါ

host ပေါ်ရှိ curl ရလဒ်သည် host လမ်းကြောင်းကိုသာ စစ်ဆေးသည်။ သက်ဆိုင်ရာတောင်းဆိုမှုကို ကွန်တိန်နာပတ်ဝန်းကျင်မှ ပြုလုပ်ပြီး ရည်ရွယ်သည့် endpoint သို့ ရောက်မရောက် စစ်ဆေးပါ။

‘Host’ ဟူသည် Docker Engine ကို အလုပ်လုပ်စေသော စက်လည်း ဖြစ်သည်။ အဝေးရှိ Engine ကို သုံးလျှင် ထိုစက်သည် သင့်လက်ပ်တော့ ဖြစ်ရန်မလိုပါ။ ထို့ကြောင့် local desktop အက်ပ်မှ ကူးထားသော loopback IP သည် အဝေးရှိ builder သို့မဟုတ် server တွင် မပြောင်းဘဲ အလုပ်လုပ်နိုင်ခြေ အထူးနည်းပါးသည်။

image ဒေါင်းလုဒ်ပြဿနာကို သီးခြားထားပါ။ အက်ပ်က အထက်ပါပတ်ဝန်းကျင်ကို မသုံးနိုင်မီ daemon က image ကို ဒေါင်းလုဒ်လုပ်သည်။

ဆက်စပ်ဆောင်းပါးများ