Cómo configurar un proxy en Docker (contenedores, Compose y compilaciones)
Actualizado:
Al ejecutar scrapers multicontenedor, workers de automatización o nodos DePIN en un único servidor host, pasar las variables de entorno HTTP_PROXY y HTTPS_PROXY por contenedor permite que cada servicio salga a internet a través de su propia dirección IPv4 estática dedicada de VinaProxy sin alterar la tabla de enrutamiento del host.
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 ₫
Descripción de los 3 niveles de configuración de proxy en Docker
Docker separa el tráfico de ejecución de contenedores, el tráfico de compilación de imágenes y las descargas del demonio desde registros:
| Nivel de Docker | Dónde configurarlo | Qué enruta |
|---|---|---|
| 1. Tiempo de ejecución del contenedor | docker run -e HTTP_PROXY=... o environment: en Compose | Tráfico generado por la aplicación dentro de ese contenedor específico |
2. Compilación de imagen (docker build) | --build-arg HTTP_PROXY=http://user:pass@ip:port | Descargas de gestores de paquetes (apt, pip, npm) durante la compilación |
3. Demonio de Docker (dockerd) | /etc/systemd/system/docker.service.d/http-proxy.conf | Peticiones de docker pull y docker push hacia registros |
Buenas prácticas en Docker Compose y reglas de NO_PROXY
- Configure las variables tanto en mayúsculas (
HTTP_PROXY,HTTPS_PROXY,NO_PROXY) como en minúsculas (http_proxy,https_proxy,no_proxy) para que todas las herramientas CLI y entornos de Linux las detecten - Incluya siempre los nombres de los servicios internos de Docker Compose (ej.:
NO_PROXY=localhost,127.0.0.1,redis,postgres) para que el tráfico entre contenedores permanezca en la red bridge local - Nunca incluya contraseñas de proxy en imágenes públicas mediante
ENVdentro de unDockerfile; inyéctelas en tiempo de ejecución a través de.envodocker-compose.yml
Paso a paso
- 1
Formatee su proxy como http://user:pass@ip:port
Convierta su línea
ip:port:user:passde VinaProxy utilizando nuestro Conversor de formato de proxy. - 2
Añada las variables de entorno a docker-compose.yml
En la sección
environment:de su servicio, definaHTTP_PROXY,HTTPS_PROXY,http_proxy,https_proxyyNO_PROXY=localhost,127.0.0.1,redis,db. - 3
Inicie o recree el contenedor
Ejecute
docker compose up -dpara aplicar las nuevas variables de entorno. - 4
Verifique la IP de salida desde el interior del contenedor
Ejecute
docker exec -it <container> curl -s https://vinaproxy.com/api/my-ippara confirmar que el contenedor sale a través de la IP de su proxy.
Preguntas frecuentes
¿Por qué mi contenedor no puede conectar con el contenedor de Redis o Postgres tras configurar HTTP_PROXY?
Sin NO_PROXY, su cliente HTTP intenta acceder a nombres internos como redis o db a través del proxy externo. Añada NO_PROXY=localhost,127.0.0.1,redis,db (y en minúsculas no_proxy) para omitir el proxy en hosts internos de la red bridge.
¿Puedo asignar 20 proxies diferentes a 20 contenedores en un solo VPS?
Sí. Defina cada servicio de contenedor (o pase variables .env distintas) con su propia cadena http://user:pass@ip:port.
¿Por qué definir variables de proxy tanto en mayúsculas como en minúsculas?
Algunas librerías de Linux (como libcurl) comprueban primero las variables en minúsculas http_proxy / https_proxy, mientras que las herramientas en Go y Node suelen leer las mayúsculas HTTP_PROXY / HTTPS_PROXY.
Asigne IPs estáticas dedicadas a cada contenedor Docker
Proxies IPv4 dedicados e ISP estáticos sin límite de tráfico en 7 países.
Comprar proxies para Docker