Docker-də proksi necə quraşdırılır (Konteynerlər, Compose və Build-lər)
Updated:
Tək bir host serverdə çoxkonteynerli skreyperlər, avtomatlaşdırma işçiləri və ya DePIN qovşaqları işlədərkən, hər bir konteynerə HTTP_PROXY və HTTPS_PROXY mühit dəyişənlərini ötürmək host maşınının marşrutlaşdırma cədvəlini dəyişmədən hər xidmətin VinaProxy tərəfindən təqdim edilən özünəməxsus ayrılmış statik IPv4 ünvanı vasitəsilə çıxış etməsinə imkan verir.
ENV HTTP_PROXY=http://user:pass@ip:port HTTPS_PROXY=http://user:pass@ip:port- 1 İP40.000 ₫
- 5+ İP35.000 ₫
- 10+ İP25.000 ₫
- 20+ İP25.000 ₫
- 50+ İP25.000 ₫
- 100+ İP25.000 ₫
- 200+ İP25.000 ₫
- 500+ İP25.000 ₫
- 1000+ İP22.000 ₫
- 2000+ İP20.000 ₫
- 1 İP40.000 ₫
- 5+ İP35.000 ₫
- 10+ İP25.000 ₫
- 20+ İP25.000 ₫
- 50+ İP25.000 ₫
- 100+ İP25.000 ₫
- 200+ İP25.000 ₫
- 500+ İP25.000 ₫
- 1000+ İP22.000 ₫
- 2000+ İP20.000 ₫
3 Docker proksi konfiqurasiya sahəsini anlamaq
Docker konteyner icra trafiki, imic yığımı trafiki və demon reyestr çəkmələrini bir-birindən ayırır:
| Docker Sahəsi | Harada Konfiqurasiya Edilməli | Nəyi Marşrutlaşdırır |
|---|---|---|
| 1. Konteyner İcrası (Runtime) | docker run -e HTTP_PROXY=... və ya Compose environment: | Həmin konkret konteyner daxilindəki tətbiq tərəfindən yaradılan trafik |
2. İmic Qurulması (docker build) | --build-arg HTTP_PROXY=http://user:pass@ip:port | Qurma zamanı paket menecerinin yükləmələri (apt, pip, npm) |
3. Docker Demonu (dockerd) | /etc/systemd/system/docker.service.d/http-proxy.conf | Reyestrlərə göndərilən docker pull və docker push sorğuları |
Docker Compose ən yaxşı təcrübələri və NO_PROXY qaydaları
- Bütün Linux CLI alətlərinin və proqramlaşdırma dillərinin icra mühitlərinin onları qəbul etməsi üçün həm böyük hərfli (
HTTP_PROXY,HTTPS_PROXY,NO_PROXY), həm də kiçik hərfli (http_proxy,https_proxy,no_proxy) dəyişənləri təyin edin - Konteynerlərarası trafikin yerli körpü (bridge) şəbəkəsində qalması üçün həmişə daxili Docker Compose xidmət adlarını qeyd edin (məs.,
NO_PROXY=localhost,127.0.0.1,redis,postgres) - Proksi parollarını heç vaxt
DockerfiledaxilindəENVvasitəsilə ictimai imiclərə yerləşdirməyin—onları icra zamanı.envvə yadocker-compose.ymlvasitəsilə ötürün
Addım-addım
- 1
Proksinizi http://user:pass@ip:port formatına salın
Proxy Format Converter alətimizdən istifadə edərək VinaProxy
ip:port:user:passsətrinizi çevirin. - 2
Mühit dəyişənlərini docker-compose.yml faylına əlavə edin
Xidmətinizin
environment:bölməsi altındaHTTP_PROXY,HTTPS_PROXY,http_proxy,https_proxyvəNO_PROXY=localhost,127.0.0.1,redis,dbtəyin edin. - 3
Konteyneri başladın və ya yenidən yaradın
Mühit dəyişənlərini tətbiq etmək üçün
docker compose up -dəmrini icra edin. - 4
Konteyner daxilindən çıxış IP ünvanını yoxlayın
Konteynerin proksi IP ünvanınız vasitəsilə çıxış etdiyini təsdiqləmək üçün
docker exec -it <container> curl -s https://vinaproxy.com/api/my-ipəmrini icra edin.
Tez-tez verilən suallar
HTTP_PROXY təyin etdikdən sonra konteynerim niyə Redis və ya Postgres konteynerimə qoşula bilmir?
NO_PROXY olmadan HTTP müştəriniz redis və ya db kimi daxili xidmət adlarına xarici proksi vasitəsilə qoşulmağa çalışır. Daxili körpü (bridge) hostları üçün proksidən yan keçmək məqsədilə NO_PROXY=localhost,127.0.0.1,redis,db (və kiçik hərfli no_proxy) əlavə edin.
Bir VPS-də 20 konteynerə 20 fərqli proksi təyin edə bilərəmmi?
Bəli. Hər konteyner xidmətini öz http://user:pass@ip:port sətri ilə təyin edin (və ya fərqli .env dəyişənləri ötürün).
Niyə həm böyük, həm də kiçik hərfli proksi dəyişənləri təyin edilməlidir?
Bəzi Linux kitabxanaları (məsələn, libcurl) əvvəlcə kiçik hərfli http_proxy / https_proxy dəyişənlərini yoxlayır, Go və Node alətləri isə əksər hallarda böyük hərfli HTTP_PROXY / HTTPS_PROXY dəyişənlərini yoxlayır.
Hər bir Docker konteynerinə ayrılmış statik IP-lər təyin edin
7 ölkədə anında limitsiz Dedicated IPv4 və Static ISP proksiləri.
Docker Proksiləri Alın