Proxy remoto de Docker
Supervise un motor ubicado en otro servidor a través de LAN, VPN o Tailscale.
Un proxy remoto de Docker otorga privilegios administrativos significativos. Nunca lo exponga a Internet y nunca publique el socket de Docker sin cifrar. Prefiera una red privada con filtrado de origen; para redes no confiables, agregue TLS o un túnel autenticado.
Arquitectura con LAN o Tailscale
En el host remoto de Docker:
services:
docker-proxy:
image: tecnativa/docker-socket-proxy:v0.5.0
restart: unless-stopped
environment:
CONTAINERS: 1
IMAGES: 1
VOLUMES: 1
NETWORKS: 1
INFO: 1
POST: 1
DELETE: 0
AUTH: 0
BUILD: 0
EXEC: 0
SYSTEM: 0
ports:
# Définissez cette variable dans le .env local de l'hôte distant.
- "${DOCKER_PROXY_BIND_IP}:2375:2375"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:roEstablezca DOCKER_PROXY_BIND_IP en el archivo local .env con la IP real de Tailscale o LAN del host remoto. No commitee este archivo. Agregue una regla de firewall que permita únicamente la IP de origen del host de NasDash hacia el puerto TCP 2375.
En NasDash:
http://PRIVATE_PROXY_IP:2375Variante SSH sin publicar el puerto 2375
Cree un túnel persistente desde el host de NasDash que enlace un puerto local a 127.0.0.1:2375 en el host remoto, y luego haga que este puerto sea accesible desde el contenedor de NasDash. Este enfoque requiere una gestión rigurosa de la clave SSH y del servicio de túnel; NasDash no lo proporciona automáticamente.
Pruebas desde el contenedor
docker compose exec nasdash node -e "fetch('http://PRIVATE_PROXY_IP:2375/_ping').then(r=>r.text()).then(console.log)"Si el host responde desde la máquina pero no desde el contenedor, verifique la enrutación de Docker, las reglas de firewall y las reglas de Tailscale. Consulte también Acceso remoto.
HTTP solo es aceptable en una red privada de confianza
El proxy no autentica esta URL por sí mismo. En una red compartida o no confiable, use una capa TLS autenticada o un túnel, y mantenga el filtrado de origen.