Si të konfiguroni një proxy në Docker (Kontejnerë, Compose & Ndërtime)
Updated:
Kur ekzekutoni scraper-a me shumë kontejnerë, procese automatizimi ose nyje DePIN në një server të vetëm pritës, kalimi i variablave të mjedisit HTTP_PROXY dhe HTTPS_PROXY për çdo kontejner lejon që çdo shërbim të dalë përmes adresës së tij të dedikuar statike IPv4 nga VinaProxy pa ndryshuar tabelën e rrugëzimit të makinës pritëse.
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 ₫
Kuptimi i 3 fushëveprimeve të konfigurimit të proxy-t në Docker
Docker ndan trafikun gjatë ekzekutimit të kontejnerit, trafikun e ndërtimit të imazhit dhe shkarkimet nga regjistri të daemon-it:
| Fushëveprimi në Docker | Ku të Konfigurohet | Çfarë Rrugëzon |
|---|---|---|
| 1. Ekzekutimi i Kontejnerit | docker run -e HTTP_PROXY=... ose environment: në Compose | Trafiku i gjeneruar nga aplikacioni brenda atij kontejneri specifik |
2. Ndërtimi i Imazhit (docker build) | --build-arg HTTP_PROXY=http://user:pass@ip:port | Shkarkimet e menaxherit të paketave (apt, pip, npm) gjatë ndërtimit |
3. Docker Daemon (dockerd) | /etc/systemd/system/docker.service.d/http-proxy.conf | Kërkesat docker pull dhe docker push drejt regjistrave |
Praktikat më të mira të Docker Compose dhe rregullat e NO_PROXY
- Përcaktoni variablat me shkronja të mëdha (
HTTP_PROXY,HTTPS_PROXY,NO_PROXY) dhe me shkronja të vogla (http_proxy,https_proxy,no_proxy) në mënyrë që të gjitha mjetet CLI të Linux dhe mjediset e ekzekutimit të gjuhëve t'i njohin ato - Gjithmonë listoni emrat e brendshëm të shërbimeve të Docker Compose (p.sh.,
NO_PROXY=localhost,127.0.0.1,redis,postgres) në mënyrë që trafiku midis kontejnerëve të mbetet në rrjetin lokal bridge - Mos i përfshini kurrë fjalëkalimet e proxy-t në imazhe publike me
ENVbrenda njëDockerfile—injiktojini ato gjatë ekzekutimit përmes.envosedocker-compose.yml
Hap pas hapi
- 1
Formatoni proxy-n tuaj si http://user:pass@ip:port
Konvertoni rreshtin
ip:port:user:passtë VinaProxy tuaj duke përdorur Proxy Format Converter. - 2
Shtoni variablat e mjedisit në docker-compose.yml
Nën
environment:të shërbimit tuaj, përcaktoniHTTP_PROXY,HTTPS_PROXY,http_proxy,https_proxy, dheNO_PROXY=localhost,127.0.0.1,redis,db. - 3
Nisni ose rikrijoni kontejnerin
Ekzekutoni
docker compose up -dpër të zbatuar variablat e mjedisit. - 4
Verifikoni IP-në dalëse nga brenda kontejnerit
Ekzekutoni
docker exec -it <container> curl -s https://vinaproxy.com/api/my-ippër të konfirmuar që kontejneri del përmes IP-së së proxy-t tuaj.
Pyetjet e shpeshta
Pse kontejneri im nuk arrin të lidhet me kontejnerin Redis ose Postgres pasi kam vendosur HTTP_PROXY?
Pa NO_PROXY, klienti juaj HTTP përpiqet të lidhet me emrat e brendshëm të shërbimeve si redis ose db përmes proxy-t të jashtëm. Shtoni NO_PROXY=localhost,127.0.0.1,redis,db (dhe me shkronja të vogla no_proxy) për të anashkaluar proxy-n për host-et e brendshme bridge.
A mund t'u caktoj 20 proxy të ndryshëm 20 kontejnerëve në një VPS?
Po. Përcaktoni çdo shërbim kontejneri (ose kaloni variabla të dallueshëm .env) me vargun e tij përkatës http://user:pass@ip:port.
Pse duhen vendosur variablat e proxy-t si me shkronja të mëdha ashtu edhe me të vogla?
Disa biblioteka të Linux (si libcurl) kontrollojnë fillimisht http_proxy / https_proxy me shkronja të vogla, ndërsa mjetet Go dhe Node shpesh kontrollojnë HTTP_PROXY / HTTPS_PROXY me shkronja të mëdha.
Caktoni IP statike të dedikuara për çdo kontejner Docker
Proxy të menjëhershëm të pakufizuar Dedicated IPv4 dhe Static ISP në 7 shtete.
Bleni Proxy për Docker