Comment configurer un proxy dans Docker (conteneurs, Compose et builds)
Mis à jour:
Lorsque vous exécutez des scrapers multi-conteneurs, des workers d'automatisation ou des nœuds DePIN sur un seul serveur hôte, transmettre les variables d'environnement HTTP_PROXY et HTTPS_PROXY par conteneur permet à chaque service de sortir via sa propre adresse IPv4 statique dédiée de VinaProxy sans modifier la table de routage de l'hôte.
ENV HTTP_PROXY=http://user:pass@ip:port HTTPS_PROXY=http://user:pass@ip:port- 1 IP40 000 ₫
- 5+ IPs35 000 ₫
- 10+ IPs25 000 ₫
- 20+ IPs25 000 ₫
- 50+ IPs25 000 ₫
- 100+ IPs25 000 ₫
- 200+ IPs25 000 ₫
- 500+ IPs25 000 ₫
- 1000+ IPs22 000 ₫
- 2000+ IPs20 000 ₫
- 1 IP40 000 ₫
- 5+ IPs35 000 ₫
- 10+ IPs25 000 ₫
- 20+ IPs25 000 ₫
- 50+ IPs25 000 ₫
- 100+ IPs25 000 ₫
- 200+ IPs25 000 ₫
- 500+ IPs25 000 ₫
- 1000+ IPs22 000 ₫
- 2000+ IPs20 000 ₫
Comprendre les 3 niveaux de configuration de proxy Docker
Docker sépare le trafic d'exécution des conteneurs, le trafic de build d'images et les téléchargements du démon depuis les registres :
| Portée Docker | Où configurer | Ce qui est routé |
|---|---|---|
| 1. Exécution du conteneur | docker run -e HTTP_PROXY=... ou environment: dans Compose | Trafic généré par l'application à l'intérieur de ce conteneur spécifique |
2. Build d'image (docker build) | --build-arg HTTP_PROXY=http://user:pass@ip:port | Téléchargements des gestionnaires de paquets (apt, pip, npm) lors du build |
3. Démon Docker (dockerd) | /etc/systemd/system/docker.service.d/http-proxy.conf | Requêtes docker pull et docker push vers les registres |
Bonnes pratiques Docker Compose et règles NO_PROXY
- Définissez les variables en majuscules (
HTTP_PROXY,HTTPS_PROXY,NO_PROXY) et en minuscules (http_proxy,https_proxy,no_proxy) pour que tous les outils CLI et runtimes Linux les prennent en compte - Listez toujours les noms des services internes Docker Compose (ex.
NO_PROXY=localhost,127.0.0.1,redis,postgres) pour que le trafic entre conteneurs reste sur le réseau bridge local - N'intégrez jamais de mots de passe de proxy dans des images publiques avec
ENVdans unDockerfile— injectez-les au démarrage via.envoudocker-compose.yml
Étape par étape
- 1
Formatez votre proxy sous la forme http://user:pass@ip:port
Convertissez votre ligne VinaProxy
ip:port:user:passà l'aide de notre Convertisseur de format de proxy. - 2
Ajoutez les variables d'environnement à docker-compose.yml
Sous la section
environment:de votre service, définissezHTTP_PROXY,HTTPS_PROXY,http_proxy,https_proxyetNO_PROXY=localhost,127.0.0.1,redis,db. - 3
Démarrez ou recréez le conteneur
Exécutez
docker compose up -dpour appliquer les variables d'environnement. - 4
Vérifiez l'IP de sortie depuis l'intérieur du conteneur
Exécutez
docker exec -it <container> curl -s https://vinaproxy.com/api/my-ippour confirmer que le conteneur sort par l'IP de votre proxy.
Questions fréquentes
Pourquoi mon conteneur ne peut-il pas joindre le conteneur Redis ou Postgres après avoir défini HTTP_PROXY ?
Sans NO_PROXY, votre client HTTP essaie de joindre les noms de services internes comme redis ou db via le proxy externe. Ajoutez NO_PROXY=localhost,127.0.0.1,redis,db (et no_proxy en minuscules) pour contourner le proxy pour les hôtes du bridge local.
Puis-je attribuer 20 proxys différents à 20 conteneurs sur un seul VPS ?
Oui. Définissez chaque service de conteneur (ou passez des variables .env distinctes) avec sa propre chaîne http://user:pass@ip:port.
Pourquoi définir les variables de proxy en majuscules et en minuscules ?
Certaines bibliothèques Linux (comme libcurl) vérifient d'abord les minuscules http_proxy / https_proxy, tandis que les outils Go et Node lisent généralement les majuscules HTTP_PROXY / HTTPS_PROXY.
Attribuez des IP statiques dédiées à chaque conteneur Docker
Proxys IPv4 dédiés et ISP statiques sans limite de bande passante dans 7 pays.
Acheter des proxies Docker