በDocker ውስጥ ፕሮክሲ እንዴት ማዋቀር እንደሚቻል (Containers፣ Compose እና Builds)
Updated:
በአንድ ሆስት ሰርቨር ላይ ባለብዙ-ኮንቴይነር ስክራፐሮችን፣ የአውቶሜሽን ሰራተኞችን ወይም የDePIN ኖዶችን ሲያሄዱ፣ ለእያንዳንዱ ኮንቴይነር HTTP_PROXY እና HTTPS_PROXY environment variables ማስተላለፍ የሆስት ማሽኑን routing table ሳይቀይሩ እያንዳንዱ አገልግሎት ከVinaProxy ባለው የራሱ ራሱን የቻለ ቋሚ IPv4 አድራሻ በኩል እንዲወጣ ያስችለዋል።
ENV HTTP_PROXY=http://user:pass@ip:port HTTPS_PROXY=http://user:pass@ip:port- 1 IP₫40,000
- 5+ IPs₫35,000
- 10+ IPs₫25,000
- 20+ IPs₫25,000
- 50+ IPs₫25,000
- 100+ IPs₫25,000
- 200+ IPs₫25,000
- 500+ IPs₫25,000
- 1000+ IPs₫22,000
- 2000+ IPs₫20,000
- 1 IP₫40,000
- 5+ IPs₫35,000
- 10+ IPs₫25,000
- 20+ IPs₫25,000
- 50+ IPs₫25,000
- 100+ IPs₫25,000
- 200+ IPs₫25,000
- 500+ IPs₫25,000
- 1000+ IPs₫22,000
- 2000+ IPs₫20,000
3ቱን የDocker ፕሮክሲ ማዋቀሪያ ወሰኖች መረዳት
Docker የኮንቴይነር runtime ትራፊክን፣ የምስል ግንባታ (image build) ትራፊክን እና የdaemon registry pull ሂደቶችን ይለያል፡
| የDocker ወሰን | የት እንደሚዋቀር | ምን እንደሚያስተላልፍ |
|---|---|---|
| 1. Container Runtime | docker run -e HTTP_PROXY=... ወይም Compose environment: | በዚያ የተወሰነ ኮንቴይነር ውስጥ በመተግበሪያው የሚመነጭ ትራፊክ |
2. Image Build (docker build) | --build-arg HTTP_PROXY=http://user:pass@ip:port | በግንባታ ወቅት የጥቅል አስተዳዳሪ ማውረዶች (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 መሳሪያዎች እና የቋንቋ runtimes እንዲያገኟቸው ሁለቱንም በትላልቅ ፊደላት (
HTTP_PROXY፣HTTPS_PROXY፣NO_PROXY) እና በትንንሽ ፊደላት (http_proxy፣https_proxy፣no_proxy) ተለዋዋጮችን ያዘጋጁ - በኮንቴይነሮች መካከል ያለው ትራፊክ በአካባቢው የbridge አውታረ መረብ ላይ እንዲቆይ ሁልጊዜ የውስጥ የDocker Compose አገልግሎት ስሞችን ይዘርዝሩ (ለምሳሌ፡
NO_PROXY=localhost,127.0.0.1,redis,postgres) - የፕሮክሲ የይለፍ ቃላትን በጭራሽ በ
Dockerfileውስጥ በENVወደ ይፋዊ ምስሎች አያካትቱ—በruntime ወቅት በ.envወይም በdocker-compose.ymlበኩል ያስገቧቸው
ደረጃ በደረጃ
- 1
ፕሮክሲዎን እንደ http://user:pass@ip:port ያዘጋጁ
የእርስዎን የVinaProxy
ip:port:user:passመስመር የእኛን የፕሮክሲ ቅርጸት መቀየሪያ በመጠቀም ይቀይሩ። - 2
የአካባቢ ተለዋዋጮችን ወደ docker-compose.yml ያክሉ
በአገልግሎትዎ
environment:ስርHTTP_PROXY፣HTTPS_PROXY፣http_proxy፣https_proxyእናNO_PROXY=localhost,127.0.0.1,redis,dbይግለጹ። - 3
ኮንቴይነሩን ያስጀምሩ ወይም እንደገና ይፍጠሩ
የአካባቢ ተለዋዋጮችን ተግባራዊ ለማድረግ
docker compose up -dን ያሂዱ። - 4
ከኮንቴይነሩ ውስጥ መውጫ IPን ያረጋግጡ
ኮንቴይነሩ በእርስዎ ፕሮክሲ IP በኩል መውጣቱን ለማረጋገጥ
docker exec -it <container> curl -s https://vinaproxy.com/api/my-ipን ያስፈጽሙ።
ተደጋግመው የሚጠየቁ ጥያቄዎች
HTTP_PROXYን ካዋቀርኩ በኋላ ኮንቴይነሬ የRedis ወይም Postgres ኮንቴይነሬን ማግኘት ያልቻለው ለምንድን ነው?
ያለ NO_PROXY፣ የእርስዎ የHTTP ደንበኛ እንደ redis ወይም db ያሉ የውስጥ አገልግሎት ስሞችን በውጫዊው ፕሮክሲ በኩል ለማግኘት ይሞክራል። ለውስጣዊ የbridge አስተናጋጆች ፕሮክሲውን ለማለፍ NO_PROXY=localhost,127.0.0.1,redis,db (እና በትንንሽ ፊደላት no_proxy) ያክሉ።
በአንድ VPS ላይ ለ20 ኮንቴይነሮች 20 የተለያዩ ፕሮክሲዎችን መመደብ እችላለሁ?
አዎ። እያንዳንዱን የኮንቴይነር አገልግሎት (ወይም የተለዩ የ.env ተለዋዋጮችን በማስተላለፍ) በራሱ http://user:pass@ip:port ሕብረ-ቁምፊ ይግለጹ።
ሁለቱንም የትላልቅ እና የትንንሽ ፊደላት ፕሮክሲ ተለዋዋጮችን ማዘጋጀት ለምን አስፈለገ?
አንዳንድ የLinux ቤተ-መጻሕፍት (እንደ libcurl ያሉ) በመጀመሪያ አነስተኛ ፊደላትን http_proxy / https_proxy የሚፈትሹ ሲሆን፣ የGo እና የNode መሣሪያዎች ግን ብዙ ጊዜ ትላልቅ ፊደላትን HTTP_PROXY / HTTPS_PROXY ይፈትሻሉ።
ለእያንዳንዱ የDocker ኮንቴይነር ራሳቸውን የቻሉ ቋሚ IPዎችን ይመድቡ
በ7 አገሮች ውስጥ ፈጣን ገደብ የለሽ Dedicated IPv4 እና Static ISP ፕሮክሲዎች።
የDocker ፕሮክሲዎችን ይግዙ