Ինչպես կարգավորել պրոքսի Docker-ում (կոնտեյներներ, Compose և կառուցումներ)
Updated:
Երբ մեկ հոսթ սերվերի վրա աշխատեցնում եք բազմակոնտեյներ սկրեյպերներ, ավտոմատացման worker-ներ կամ DePIN հանգույցներ, յուրաքանչյուր կոնտեյներին HTTP_PROXY և HTTPS_PROXY միջավայրի փոփոխականներ փոխանցելը թույլ է տալիս, որ յուրաքանչյուր ծառայություն ցանց դուրս գա VinaProxy-ի իր առանձնացված ստատիկ IPv4 հասցեով՝ առանց հոսթ մեքենայի երթուղավորման աղյուսակը փոխելու:
ENV HTTP_PROXY=http://user:pass@ip:port HTTPS_PROXY=http://user:pass@ip:port- 1 IP40 000 ₫
- 5+ IP35 000 ₫
- 10+ IP25 000 ₫
- 20+ IP25 000 ₫
- 50+ IP25 000 ₫
- 100+ IP25 000 ₫
- 200+ IP25 000 ₫
- 500+ IP25 000 ₫
- 1000+ IP22 000 ₫
- 2000+ IP20 000 ₫
- 1 IP40 000 ₫
- 5+ IP35 000 ₫
- 10+ IP25 000 ₫
- 20+ IP25 000 ₫
- 50+ IP25 000 ₫
- 100+ IP25 000 ₫
- 200+ IP25 000 ₫
- 500+ IP25 000 ₫
- 1000+ IP22 000 ₫
- 2000+ IP20 000 ₫
Docker պրոքսիի կարգավորման 3 տիրույթները
Docker-ը տարանջատում է կոնտեյների runtime տրաֆիկը, իմիջի կառուցման տրաֆիկը և daemon-ի ռեգիստրից ներբեռնումները:
| 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 | docker pull և docker push հարցումները ռեգիստրներին |
Docker Compose-ի լավագույն փորձառությունները և NO_PROXY-ի կանոնները
- Սահմանեք ինչպես մեծատառ (
HTTP_PROXY,HTTPS_PROXY,NO_PROXY), այնպես էլ փոքրատառ (http_proxy,https_proxy,no_proxy) փոփոխականները, որպեսզի Linux-ի բոլոր CLI գործիքներն ու ծրագրավորման լեզուների միջավայրերը ճանաչեն դրանք - Միշտ նշեք Docker Compose-ի ներքին ծառայությունների անունները (օրինակ՝
NO_PROXY=localhost,127.0.0.1,redis,postgres), որպեսզի միջկոնտեյներային տրաֆիկը մնա տեղական bridge ցանցում - Երբեք մի ներառեք պրոքսիի գաղտնաբառերը հանրային իմիջների մեջ
Dockerfile-իENV-ի միջոցով. փոխանցեք դրանք runtime-ում.env-ի կամdocker-compose.yml-ի միջոցով
Քայլ առ քայլ
- 1
Ձևաչափեք ձեր պրոքսին որպես http://user:pass@ip:port
Փոխակերպեք ձեր VinaProxy-ի
ip:port:user:passտողը՝ օգտագործելով մեր Proxy Format Converter գործիքը: - 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-ն կոնտեյների ներսից
Գործարկեք
docker exec -it <container> curl -s https://vinaproxy.com/api/my-ipհրամանը՝ համոզվելու համար, որ կոնտեյները ցանց է դուրս գալիս ձեր պրոքսիի IP-ով:
Հաճախ տրվող հարցեր
Ինչո՞ւ իմ կոնտեյները չի կարողանում կապ հաստատել Redis կամ Postgres կոնտեյների հետ HTTP_PROXY-ն կարգավորելուց հետո:
Առանց NO_PROXY-ի ձեր HTTP հաճախորդը փորձում է ներքին ծառայությունների անուններին, ինչպիսիք են redis-ը կամ db-ն, հասնել արտաքին պրոքսիի միջոցով: Ավելացրեք NO_PROXY=localhost,127.0.0.1,redis,db (և փոքրատառ no_proxy)՝ ներքին bridge հոսթերի համար պրոքսին շրջանցելու նպատակով:
Կարո՞ղ եմ մեկ VPS-ի վրա 20 տարբեր պրոքսիներ կցել 20 կոնտեյներների:
Այո: Սահմանեք յուրաքանչյուր կոնտեյների ծառայությունը (կամ փոխանցեք առանձին .env փոփոխականներ) իր սեփական http://user:pass@ip:port տողով:
Ինչո՞ւ սահմանել ինչպես մեծատառ, այնպես էլ փոքրատառ պրոքսի փոփոխականներ:
Linux-ի որոշ գրադարաններ (ինչպես libcurl-ը) նախ ստուգում են փոքրատառ http_proxy / https_proxy-ն, իսկ Go և Node գործիքները հաճախ ստուգում են մեծատառ HTTP_PROXY / HTTPS_PROXY-ն:
Կցեք առանձնացված ստատիկ IP-ներ յուրաքանչյուր Docker կոնտեյների
Անհապաղ անսահմանափակ Dedicated IPv4 և Static ISP պրոքսիներ 7 երկրներում:
Գնել Docker պրոքսիներ