Een proxy instellen in Docker (containers, Compose & builds)
Updated:
Wanneer je multi-container scrapers, automation workers of DePIN-nodes op één hostserver draait, zorgt het doorgeven van de omgevingsvariabelen HTTP_PROXY en HTTPS_PROXY per container ervoor dat elke service via zijn eigen dedicated statische IPv4-adres van VinaProxy naar buiten gaat, zonder de routeringstabel van de hostmachine aan te passen.
ENV HTTP_PROXY=http://user:pass@ip:port HTTPS_PROXY=http://user:pass@ip:port- 1 IP₫ 40.000
- 5+ IP's₫ 35.000
- 10+ IP's₫ 25.000
- 20+ IP's₫ 25.000
- 50+ IP's₫ 25.000
- 100+ IP's₫ 25.000
- 200+ IP's₫ 25.000
- 500+ IP's₫ 25.000
- 1000+ IP's₫ 22.000
- 2000+ IP's₫ 20.000
- 1 IP₫ 40.000
- 5+ IP's₫ 35.000
- 10+ IP's₫ 25.000
- 20+ IP's₫ 25.000
- 50+ IP's₫ 25.000
- 100+ IP's₫ 25.000
- 200+ IP's₫ 25.000
- 500+ IP's₫ 25.000
- 1000+ IP's₫ 22.000
- 2000+ IP's₫ 20.000
Inzicht in de 3 configuratiescopes van Docker-proxies
Docker maakt onderscheid tussen container-runtimeverkeer, image-buildverkeer en daemon-registry-pulls:
| Docker-scope | Waar te configureren | Wat het routeert |
|---|---|---|
| 1. Container-runtime | docker run -e HTTP_PROXY=... of Compose environment: | Verkeer gegenereerd door de app binnen die specifieke container |
2. Image-build (docker build) | --build-arg HTTP_PROXY=http://user:pass@ip:port | Downloads van pakketbeheerders (apt, pip, npm) tijdens de build |
3. Docker Daemon (dockerd) | /etc/systemd/system/docker.service.d/http-proxy.conf | docker pull- en docker push-verzoeken naar registries |
Best practices voor Docker Compose & NO_PROXY-regels
- Stel zowel hoofdletters (
HTTP_PROXY,HTTPS_PROXY,NO_PROXY) als kleine letters (http_proxy,https_proxy,no_proxy) in als variabelen, zodat alle Linux CLI-tools en runtime-omgevingen ze overnemen - Vermeld altijd interne Docker Compose-servicenamen (bijv.
NO_PROXY=localhost,127.0.0.1,redis,postgres), zodat verkeer tussen containers op het lokale bridge-netwerk blijft - Neem proxywachtwoorden nooit rechtstreeks op in openbare images met
ENVin eenDockerfile—injecteer ze tijdens runtime via.envofdocker-compose.yml
Stappenplan
- 1
Formatteer je proxy als http://user:pass@ip:port
Converteer je VinaProxy-regel
ip:port:user:passmet behulp van onze Proxy Format Converter. - 2
Voeg omgevingsvariabelen toe aan docker-compose.yml
Definieer onder
environment:van je serviceHTTP_PROXY,HTTPS_PROXY,http_proxy,https_proxyenNO_PROXY=localhost,127.0.0.1,redis,db. - 3
Start de container of maak deze opnieuw aan
Voer
docker compose up -duit om de omgevingsvariabelen toe te passen. - 4
Verifieer het exit-IP vanuit de container
Voer
docker exec -it <container> curl -s https://vinaproxy.com/api/my-ipuit om te bevestigen dat de container naar buiten gaat via je proxy-IP.
Veelgestelde vragen
Waarom kan mijn container mijn Redis- of Postgres-container niet bereiken na het instellen van HTTP_PROXY?
Zonder NO_PROXY probeert je HTTP-client interne servicenamen zoals redis of db via de externe proxy te bereiken. Voeg NO_PROXY=localhost,127.0.0.1,redis,db (en kleine letters no_proxy) toe om de proxy te omzeilen voor interne bridge-hosts.
Kan ik 20 verschillende proxies toewijzen aan 20 containers op één VPS?
Ja. Definieer elke containerservice (of geef aparte .env-variabelen door) met een eigen http://user:pass@ip:port-tekenreeks.
Waarom moet je zowel hoofdletters als kleine letters instellen voor proxyvariabelen?
Sommige Linux-bibliotheken (zoals libcurl) controleren eerst de kleine letters http_proxy / https_proxy, terwijl Go- en Node-tools vaak de hoofdletters HTTP_PROXY / HTTPS_PROXY controleren.
Wijs dedicated statische IP's toe aan elke Docker-container
Directe onbeperkte Dedicated IPv4- en Static ISP-proxies in 7 landen.
Koop Docker-proxies