Kako podesiti proxy u Dockeru (kontejneri, Compose i buildovi)
Updated:
Kada pokrećete višestruke scrapere u kontejnerima, automatizacijske workere ili DePIN čvorove na jednom host serveru, prosljeđivanje HTTP_PROXY i HTTPS_PROXY varijabli okruženja po kontejneru omogućava svakom servisu izlaz putem vlastite namjenske statičke IPv4 adrese od VinaProxy bez mijenjanja tabele rutiranja host mašine.
ENV HTTP_PROXY=http://user:pass@ip:port HTTPS_PROXY=http://user:pass@ip:port- 1 IP40.000 ₫
- 5+ IP-ova35.000 ₫
- 10+ IP-ova25.000 ₫
- 20+ IP-ova25.000 ₫
- 50+ IP-ova25.000 ₫
- 100+ IP-ova25.000 ₫
- 200+ IP-ova25.000 ₫
- 500+ IP-ova25.000 ₫
- 1000+ IP-ova22.000 ₫
- 2000+ IP-ova20.000 ₫
- 1 IP40.000 ₫
- 5+ IP-ova35.000 ₫
- 10+ IP-ova25.000 ₫
- 20+ IP-ova25.000 ₫
- 50+ IP-ova25.000 ₫
- 100+ IP-ova25.000 ₫
- 200+ IP-ova25.000 ₫
- 500+ IP-ova25.000 ₫
- 1000+ IP-ova22.000 ₫
- 2000+ IP-ova20.000 ₫
Razumijevanje 3 nivoa konfiguracije Docker proxyja
Docker razdvaja runtime saobraćaj kontejnera, saobraćaj pri izgradnji slika i preuzimanja iz registra putem daemona:
| Docker opseg | Gdje se konfigurira | Šta usmjerava |
|---|---|---|
| 1. Runtime kontejnera | docker run -e HTTP_PROXY=... ili Compose environment: | Saobraćaj koji generiše 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) tokom builda |
3. Docker Daemon (dockerd) | /etc/systemd/system/docker.service.d/http-proxy.conf | docker pull i docker push zahtjevi prema registrima |
Najbolje prakse za Docker Compose i NO_PROXY pravila
- 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 jezici za izvršavanje - Uvijek navedite nazive internih Docker Compose servisa (npr.
NO_PROXY=localhost,127.0.0.1,redis,postgres) kako bi saobraćaj između kontejnera ostao na lokalnoj bridge mreži - Nikada nemojte ugrađivati proxy lozinke u javne slike pomoću
ENVunutarDockerfile—ubacite ih tokom pokretanja putem.envilidocker-compose.ymldatoteke
Korak po korak
- 1
Formatirajte svoj proxy kao http://user:pass@ip:port
Pretvorite svoj VinaProxy
ip:port:user:passunos pomoću našeg alata Proxy Format Converter. - 2
Dodajte varijable okruženja u docker-compose.yml
Ispod
environment:sekcije vašeg servisa, definirajteHTTP_PROXY,HTTPS_PROXY,http_proxy,https_proxyiNO_PROXY=localhost,127.0.0.1,redis,db. - 3
Pokrenite ili ponovo kreirajte kontejner
Pokrenite
docker compose up -dda biste primijenili varijable 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 na internet putem vašeg proxy IP-ja.
Č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 pristupiti internim nazivima servisa kao što su 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 stringom.
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
Trenutni neograničeni Dedicated IPv4 i Static ISP proxyji u 7 zemalja.
Kupite Docker proxyje