Kako postaviti proxy u Dockeru (kontejneri, Compose i buildovi)
Updated:
Kada pokrećete scrapere s više kontejnera, automatizacijske workere ili DePIN čvorove na jednom poslužitelju, prosljeđivanje varijabli okruženja HTTP_PROXY i HTTPS_PROXY po kontejneru omogućuje svakom servisu izlaz putem vlastite namjenske statičke IPv4 adrese pružatelja VinaProxy bez mijenjanja tablice usmjeravanja na glavnom poslužitelju.
ENV HTTP_PROXY=http://user:pass@ip:port HTTPS_PROXY=http://user:pass@ip:port- 1 IP40.000 VND
- 5+ IP-ova35.000 VND
- 10+ IP-ova25.000 VND
- 20+ IP-ova25.000 VND
- 50+ IP-ova25.000 VND
- 100+ IP-ova25.000 VND
- 200+ IP-ova25.000 VND
- 500+ IP-ova25.000 VND
- 1000+ IP-ova22.000 VND
- 2000+ IP-ova20.000 VND
- 1 IP40.000 VND
- 5+ IP-ova35.000 VND
- 10+ IP-ova25.000 VND
- 20+ IP-ova25.000 VND
- 50+ IP-ova25.000 VND
- 100+ IP-ova25.000 VND
- 200+ IP-ova25.000 VND
- 500+ IP-ova25.000 VND
- 1000+ IP-ova22.000 VND
- 2000+ IP-ova20.000 VND
Razumijevanje 3 razine konfiguracije proxyja u Dockeru
Docker razdvaja promet izvođenja kontejnera, promet izgradnje slika i dohvaćanje s repozitorija putem daemona:
| Docker razina | Gdje konfigurirati | Što usmjerava |
|---|---|---|
| 1. Izvođenje kontejnera | docker run -e HTTP_PROXY=... ili Compose environment: | Promet koji generira aplikacija unutar tog specifičnog kontejnera |
2. Izgradnja slike (docker build) | --build-arg HTTP_PROXY=http://user:pass@ip:port | Preuzimanja upravitelja paketa (apt, pip, npm) tijekom izgradnje |
3. Docker Daemon (dockerd) | /etc/systemd/system/docker.service.d/http-proxy.conf | docker pull i docker push zahtjeve prema registrima |
Najbolje prakse za Docker Compose i pravila za NO_PROXY
- Postavite varijable i velikim (
HTTP_PROXY,HTTPS_PROXY,NO_PROXY) i malim slovima (http_proxy,https_proxy,no_proxy) kako bi ih prepoznali svi Linux CLI alati i jezična radna okruženja - Uvijek navedite nazive internih Docker Compose servisa (npr.
NO_PROXY=localhost,127.0.0.1,redis,postgres) kako bi promet između kontejnera ostao na lokalnoj bridge mreži - Nikada nemojte ugrađivati lozinke za proxy u javne slike pomoću
ENVunutarDockerfiledatoteke — ubacite ih tijekom izvođenja putem.envilidocker-compose.yml
Korak po korak
- 1
Formatirajte svoj proxy kao http://user:pass@ip:port
Pretvorite svoj VinaProxy
ip:port:user:passzapis pomoću našeg alata Proxy Format Converter. - 2
Dodajte varijable okruženja u docker-compose.yml
Pod
environment:unutar vašeg servisa definirajteHTTP_PROXY,HTTPS_PROXY,http_proxy,https_proxyiNO_PROXY=localhost,127.0.0.1,redis,db. - 3
Pokrenite ili ponovno izradite kontejner
Pokrenite
docker compose up -dza primjenu varijabli okruženja. - 4
Provjerite izlazni IP unutar kontejnera
Izvršite
docker exec -it <container> curl -s https://vinaproxy.com/api/my-ipkako biste potvrdili da kontejner izlazi putem vašeg proxy IP-a.
Često postavljana pitanja
Zašto moj kontejner ne može pristupiti Redis ili Postgres kontejneru nakon postavljanja HTTP_PROXY?
Bez NO_PROXY, vaš HTTP klijent pokušava doći do internih naziva servisa poput redis ili db putem vanjskog proxyja. Dodajte NO_PROXY=localhost,127.0.0.1,redis,db (i malim slovima no_proxy) kako biste zaobišli proxy za interne bridge hostove.
Mogu li dodijeliti 20 različitih proxyja za 20 kontejnera na jednom VPS-u?
Da. Definirajte svaki servis kontejnera (ili proslijedite zasebne .env varijable) s vlastitim http://user:pass@ip:port nizom.
Zašto postaviti varijable proxyja i velikim i malim slovima?
Neke Linux biblioteke (poput libcurl) prvo provjeravaju mala slova http_proxy / https_proxy, dok Go i Node alati često provjeravaju velika slova HTTP_PROXY / HTTPS_PROXY.
Dodijelite namjenske statičke IP adrese svakom Docker kontejneru
Trenutačni neograničeni Dedicated IPv4 i Static ISP proxyji u 7 zemalja.
Kupite Docker proxyje