Jak nastavit proxy v Dockeru (kontejnery, Compose a buildy)
Updated:
Při spouštění víckontejnerových scraperů, automatizačních workerů nebo uzlů DePIN na jednom hostitelském serveru umožňuje předání proměnných prostředí HTTP_PROXY a HTTPS_PROXY jednotlivým kontejnerům, aby každá služba vystupovala přes vlastní vyhrazenou statickou IPv4 adresu od VinaProxy bez úpravy směrovací tabulky hostitelského počítače.
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
Pochopení 3 úrovní konfigurace proxy v Dockeru
Docker odděluje provoz běhového prostředí kontejnerů, provoz při sestavování obrazů a stahování z registrů démonem:
| Úroveň Dockeru | Kde konfigurovat | Co se směruje |
|---|---|---|
| 1. Běhové prostředí kontejneru | docker run -e HTTP_PROXY=... nebo Compose environment: | Provoz generovaný aplikací uvnitř konkrétního kontejneru |
2. Sestavení obrazu (docker build) | --build-arg HTTP_PROXY=http://user:pass@ip:port | Stahování správců balíčků (apt, pip, npm) během sestavování |
3. Démon Dockeru (dockerd) | /etc/systemd/system/docker.service.d/http-proxy.conf | Požadavky docker pull a docker push do registrů |
Doporučené postupy pro Docker Compose a pravidla NO_PROXY
- Nastavte proměnné velkými (
HTTP_PROXY,HTTPS_PROXY,NO_PROXY) i malými písmeny (http_proxy,https_proxy,no_proxy), aby je rozpoznaly všechny nástroje příkazové řádky pro Linux i běhová prostředí programovacích jazyků - Vždy uveďte interní názvy služeb v Docker Compose (např.
NO_PROXY=localhost,127.0.0.1,redis,postgres), aby provoz mezi kontejnery zůstal na místní bridge síti - Nikdy nevkládejte hesla k proxy natvrdo do veřejných obrazů pomocí
ENVvDockerfile—předávejte je za běhu přes.envnebodocker-compose.yml
Krok za krokem
- 1
Naformátujte proxy jako http://user:pass@ip:port
Převeďte svůj řádek
ip:port:user:passod VinaProxy pomocí našeho nástroje Proxy Format Converter. - 2
Přidejte proměnné prostředí do docker-compose.yml
V sekci
environment:vaší služby definujteHTTP_PROXY,HTTPS_PROXY,http_proxy,https_proxyaNO_PROXY=localhost,127.0.0.1,redis,db. - 3
Spusťte nebo znovu vytvořte kontejner
Spusťte
docker compose up -dpro aplikování proměnných prostředí. - 4
Ověřte výstupní IP adresu zevnitř kontejneru
Spusťte
docker exec -it <container> curl -s https://vinaproxy.com/api/my-ippro ověření, že kontejner vystupuje přes IP adresu vaší proxy.
Často kladené otázky
Proč se můj kontejner po nastavení HTTP_PROXY nemůže spojit s kontejnerem Redis nebo Postgres?
Bez NO_PROXY se váš HTTP klient pokouší přistupovat k interním názvům služeb, jako je redis nebo db, přes externí proxy. Přidejte NO_PROXY=localhost,127.0.0.1,redis,db (a malé no_proxy), aby se proxy pro interní hostitele v síti bridge obešla.
Mohu přiřadit 20 různých proxy 20 kontejnerům na jednom VPS?
Ano. Definujte každou službu kontejneru (nebo předejte samostatné proměnné v .env) s vlastním řetězcem http://user:pass@ip:port.
Proč nastavovat proměnné proxy velkými i malými písmeny?
Některé linuxové knihovny (například libcurl) kontrolují nejprve malá písmena http_proxy / https_proxy, zatímco nástroje v Go a Node často kontrolují velká písmena HTTP_PROXY / HTTPS_PROXY.
Přiřaďte každému Docker kontejneru vyhrazené statické IP
Okamžité neomezené dedikované IPv4 a statické ISP proxy v 7 zemích.
Koupit Docker proxy