Docker တွင် ပရောက်စီ ချိတ်ဆက်အသုံးပြုနည်း (Containers၊ Compose နှင့် Builds)
Updated:
host server တစ်ခုတည်းတွင် multi-container scrapers၊ automation workers သို့မဟုတ် DePIN nodes များကို run သည့်အခါ container တစ်ခုစီအတွက် HTTP_PROXY နှင့် HTTPS_PROXY environment variables များကို ထည့်သွင်းပေးခြင်းဖြင့် host machine ၏ routing table ကို ပြောင်းလဲရန်မလိုဘဲ ဝန်ဆောင်မှုတစ်ခုချင်းစီကို VinaProxy မှ သီးသန့် static IPv4 address ဖြင့် ချိတ်ဆက်အသုံးပြုနိုင်စေပါသည်။
ENV HTTP_PROXY=http://user:pass@ip:port HTTPS_PROXY=http://user:pass@ip:port- 1 IP၄၀,၀၀၀ ₫
- 5+ IPs၃၅,၀၀၀ ₫
- 10+ IPs၂၅,၀၀၀ ₫
- 20+ IPs၂၅,၀၀၀ ₫
- 50+ IPs၂၅,၀၀၀ ₫
- 100+ IPs၂၅,၀၀၀ ₫
- 200+ IPs၂၅,၀၀၀ ₫
- 500+ IPs၂၅,၀၀၀ ₫
- 1000+ IPs၂၂,၀၀၀ ₫
- 2000+ IPs၂၀,၀၀၀ ₫
- 1 IP၄၀,၀၀၀ ₫
- 5+ IPs၃၅,၀၀၀ ₫
- 10+ IPs၂၅,၀၀၀ ₫
- 20+ IPs၂၅,၀၀၀ ₫
- 50+ IPs၂၅,၀၀၀ ₫
- 100+ IPs၂၅,၀၀၀ ₫
- 200+ IPs၂၅,၀၀၀ ₫
- 500+ IPs၂၅,၀၀၀ ₫
- 1000+ IPs၂၂,၀၀၀ ₫
- 2000+ IPs၂၀,၀၀၀ ₫
Docker ပရောက်စီ ပြင်ဆင်သတ်မှတ်မှု နယ်ပယ် 3 ခုကို နားလည်ခြင်း
Docker သည် container run နေစဉ် ထွက်ပေါ်သော traffic၊ image build ပြုလုပ်စဉ် traffic နှင့် daemon registry မှ pull ပြုလုပ်မှုများကို သီးခြားစီ ခွဲခြားထားပါသည်-
| Docker နယ်ပယ် | ပြင်ဆင်သတ်မှတ်ရမည့်နေရာ | လမ်းကြောင်းပေးပို့မည့် အရာ |
|---|---|---|
| 1. Container Runtime | docker run -e HTTP_PROXY=... သို့မဟုတ် Compose environment: | အဆိုပါ သီးခြား container အတွင်းရှိ app မှ ထွက်ပေါ်လာသော traffic |
2. Image Build (docker build) | --build-arg HTTP_PROXY=http://user:pass@ip:port | Build ပြုလုပ်နေစဉ်အတွင်း package manager ဒေါင်းလုဒ်များ (apt, pip, npm) |
3. Docker Daemon (dockerd) | /etc/systemd/system/docker.service.d/http-proxy.conf | Registries များသို့ ပေးပို့သော docker pull နှင့် docker push တောင်းဆိုမှုများ |
Docker Compose အကောင်းဆုံး လုပ်ဆောင်နည်းများနှင့် NO_PROXY စည်းမျဉ်းများ
- Linux CLI tools များနှင့် program runtimes အားလုံး ဖတ်ရှုအသုံးပြုနိုင်စေရန် စာလုံးကြီး (
HTTP_PROXY,HTTPS_PROXY,NO_PROXY) နှင့် စာလုံးသေး (http_proxy,https_proxy,no_proxy) variables နှစ်မျိုးလုံးကို သတ်မှတ်ပါ - Container အချင်းချင်း ချိတ်ဆက်မှု traffic များသည် local bridge network ပေါ်တွင်သာ ရှိနေစေရန် အတွင်းပိုင်း Docker Compose ဝန်ဆောင်မှု အမည်များကို အမြဲတမ်း စာရင်းထည့်သွင်းပါ (ဥပမာ
NO_PROXY=localhost,127.0.0.1,redis,postgres) - Public images များထဲသို့
Dockerfileအတွင်းရှိENVဖြင့် ပရောက်စီ စကားဝှက်များကို မည်သည့်အခါမျှ ထည့်မရေးပါနှင့်—ယင်းတို့ကို runtime တွင်.envသို့မဟုတ်docker-compose.ymlမှတစ်ဆင့်သာ ထည့်သွင်းပါ
အဆင့်ဆင့် လုပ်ဆောင်ရန်
- 1
သင့်ပရောက်စီကို http://user:pass@ip:port အဖြစ် ပုံစံချပါ
ကျွန်ုပ်တို့၏ Proxy Format Converter ကို အသုံးပြု၍ သင့် VinaProxy ၏
ip:port:user:passစာကြောင်းကို ပြောင်းလဲပါ။ - 2
docker-compose.yml ထဲသို့ environment variables များ ထည့်ပါ
သင့် service ၏
environment:အောက်တွင်HTTP_PROXY,HTTPS_PROXY,http_proxy,https_proxyနှင့်NO_PROXY=localhost,127.0.0.1,redis,dbတို့ကို သတ်မှတ်ပါ။ - 3
Container ကို စတင်ပါ သို့မဟုတ် ပြန်လည်ဖန်တီးပါ
Environment variables များကို အသုံးချရန်
docker compose up -dကို run ပါ။ - 4
Container အတွင်းမှ ထွက်ပေါက် IP ကို စစ်ဆေးပါ
Container သည် သင့်ပရောက်စီ IP မှတစ်ဆင့် အင်တာနက်ထွက်ကြောင်း အတည်ပြုရန်
docker exec -it <container> curl -s https://vinaproxy.com/api/my-ipကို run ပါ။
မကြာခဏမေးလေ့ရှိသော မေးခွန်းများ
HTTP_PROXY သတ်မှတ်ပြီးနောက် ကျွန်ုပ်၏ container သည် Redis သို့မဟုတ် Postgres container သို့ အဘယ်ကြောင့် ချိတ်ဆက်၍မရသနည်း။
NO_PROXY မပါရှိပါက သင့် HTTP client သည် redis သို့မဟုတ် db ကဲ့သို့သော အတွင်းပိုင်း service အမည်များကို ပြင်ပပရောက်စီမှတစ်ဆင့် ချိတ်ဆက်ရန် ကြိုးပမ်းမည်ဖြစ်ပါသည်။ အတွင်းပိုင်း bridge hosts များအတွက် ပရောက်စီကို ကျော်လွှားရန် NO_PROXY=localhost,127.0.0.1,redis,db (နှင့် စာလုံးသေး no_proxy) ကို ထည့်သွင်းပေးပါ။
VPS တစ်ခုတည်းတွင် မတူညီသော proxies 20 ကို containers 20 ထံ သတ်မှတ်ပေးနိုင်ပါသလား။
သတ်မှတ်နိုင်ပါသည်။ Container ဝန်ဆောင်မှုတစ်ခုစီတွင် (သို့မဟုတ် သီးခြား .env variables များ ပေးပို့ခြင်းဖြင့်) သက်ဆိုင်ရာ http://user:pass@ip:port string ကို ကိုယ်ပိုင် သတ်မှတ်ပေးပါ။
ပရောက်စီ variables များကို အဘယ်ကြောင့် စာလုံးကြီးရော စာလုံးသေးပါ သတ်မှတ်ရသနည်း။
အချို့သော Linux libraries များ (ဥပမာ libcurl) သည် စာလုံးသေး http_proxy / https_proxy ကို ဦးစွာ စစ်ဆေးပြီး Go နှင့် Node tools များသည် စာလုံးကြီး HTTP_PROXY / HTTPS_PROXY ကို စစ်ဆေးလေ့ရှိသောကြောင့် ဖြစ်ပါသည်။
Docker container တိုင်းအတွက် သီးသန့် static IP များ သတ်မှတ်ပါ
နိုင်ငံပေါင်း 7 နိုင်ငံတွင် ချက်ချင်းရရှိနိုင်သော အကန့်အသတ်မဲ့ Dedicated IPv4 နှင့် Static ISP ပရောက်စီများ။
Docker ပရောက်စီများ ဝယ်ယူရန်