Ako nastaviť proxy v Docker (kontajnery, Compose a zostavenia)
Updated:
Pri spúšťaní viac-kontajnerových scraperov, automatizačných procesov alebo uzlov DePIN na jednom hostiteľskom serveri umožňuje odovzdanie premenných prostredia HTTP_PROXY a HTTPS_PROXY jednotlivým kontajnerom, aby každá služba pristupovala cez vlastnú dedikovanú statickú IPv4 adresu od VinaProxy bez nutnosti úpravy smerovacej tabuľky hostiteľského systému.
ENV HTTP_PROXY=http://user:pass@ip:port HTTPS_PROXY=http://user:pass@ip:port- 1 IP40 000 VND
- 5+ IP35 000 VND
- 10+ IP25 000 VND
- 20+ IP25 000 VND
- 50+ IP25 000 VND
- 100+ IP25 000 VND
- 200+ IP25 000 VND
- 500+ IP25 000 VND
- 1000+ IP22 000 VND
- 2000+ IP20 000 VND
- 1 IP40 000 VND
- 5+ IP35 000 VND
- 10+ IP25 000 VND
- 20+ IP25 000 VND
- 50+ IP25 000 VND
- 100+ IP25 000 VND
- 200+ IP25 000 VND
- 500+ IP25 000 VND
- 1000+ IP22 000 VND
- 2000+ IP20 000 VND
Prehľad 3 úrovní konfigurácie proxy v Docker
Docker oddeľuje sieťovú prevádzku runtime kontajnerov, prevádzku pri zostavovaní obrazov (build) a sťahovanie z registrov cez démona:
| Úroveň v Docker | Kde konfigurovať | Čo smeruje |
|---|---|---|
| 1. Runtime kontajnera | docker run -e HTTP_PROXY=... alebo Compose environment: | Prevádzku generovanú aplikáciou vo vnútri daného kontajnera |
2. Zostavovanie obrazu (docker build) | --build-arg HTTP_PROXY=http://user:pass@ip:port | Sťahovanie cez balíčkovacie manažéry (apt, pip, npm) počas buildu |
3. Démon Docker (dockerd) | /etc/systemd/system/docker.service.d/http-proxy.conf | Požiadavky docker pull a docker push do registrov |
Osvedčené postupy pre Docker Compose a pravidlá NO_PROXY
- Nastavte premenné veľkými písmenami (
HTTP_PROXY,HTTPS_PROXY,NO_PROXY) aj malými písmenami (http_proxy,https_proxy,no_proxy), aby ich rozpoznali všetky linuxové CLI nástroje aj runtime prostredia programovacích jazykov - Vždy uveďte názvy interných služieb v Docker Compose (napr.
NO_PROXY=localhost,127.0.0.1,redis,postgres), aby komunikácia medzi kontajnermi zostala na lokálnej bridge sieti - Nikdy nevkladajte heslá k proxy priamo do verejných obrazov pomocou
ENVv súboreDockerfile– zadávajte ich za behu cez.envalebodocker-compose.yml
Krok za krokom
- 1
Upravte formát proxy na http://user:pass@ip:port
Preveďte svoj reťazec
ip:port:user:passod VinaProxy pomocou nášho nástroja Proxy Format Converter. - 2
Pridajte premenné prostredia do docker-compose.yml
V sekcii
environment:vašej služby definujteHTTP_PROXY,HTTPS_PROXY,http_proxy,https_proxyaNO_PROXY=localhost,127.0.0.1,redis,db. - 3
Spustite alebo znovu vytvorte kontajner
Spustite príkaz
docker compose up -dpre uplatnenie premenných prostredia. - 4
Overte výstupnú IP adresu z vnútra kontajnera
Spustite
docker exec -it <container> curl -s https://vinaproxy.com/api/my-ipa overte, že kontajner pristupuje k sieti cez vašu proxy IP.
Často kladené otázky
Prečo sa môj kontajner po nastavení HTTP_PROXY nemôže spojiť s kontajnerom Redis alebo Postgres?
Bez nastavenia NO_PROXY sa váš HTTP klient pokúša pristupovať k interným názvom služieb ako redis alebo db cez externú proxy. Pridajte NO_PROXY=localhost,127.0.0.1,redis,db (aj malými písmenami no_proxy), aby sa proxy pre interných hostiteľov na bridge sieti obišla.
Môžem na jednom VPS priradiť 20 rôznych proxy k 20 kontajnerom?
Áno. Každej službe kontajnera definujte (alebo odovzdajte cez samostatné premenné v .env) vlastný reťazec http://user:pass@ip:port.
Prečo nastavovať proxy premenné veľkými aj malými písmenami?
Niektoré linuxové knižnice (napríklad libcurl) kontrolujú najprv malé písmená http_proxy / https_proxy, zatiaľ čo nástroje v Go a Node často vyžadujú veľké písmená HTTP_PROXY / HTTPS_PROXY.
Priraďte dedikované statické IP každému Docker kontajneru
Okamžité neobmedzené dedikované IPv4 a statické ISP proxy v 7 krajinách.
Kúpiť Docker proxy