Proxy Docker remoto
Monitora un engine situato su un altro server tramite LAN, VPN o Tailscale.
Un proxy Docker remoto concede privilegi amministrativi significativi. Non esporlo mai a Internet e non pubblicare mai il socket Docker grezzo. Preferisci una rete privata con filtraggio della sorgente; per le reti non attendibili, aggiungi TLS o un tunnel autenticato.
Architettura LAN o Tailscale
Sull'host Docker remoto:
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:
# Set this variable in the remote host's local .env.
- "${DOCKER_PROXY_BIND_IP}:2375:2375"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:roImposta DOCKER_PROXY_BIND_IP nel file .env locale sull'IP reale di Tailscale o LAN dell'host remoto. Non effettuare il commit di questo file. Aggiungi una regola del firewall che consenta solo l'IP sorgente dell'host di NasDash verso la porta TCP 2375.
In NasDash:
http://PRIVATE_PROXY_IP:2375Variante SSH senza pubblicare la porta 2375
Crea un tunnel persistente dall'host di NasDash che colleghi una porta locale a 127.0.0.1:2375 sull'host remoto, quindi rendi questa porta raggiungibile dal container NasDash. Questo approccio richiede una gestione rigorosa della chiave SSH e del servizio tunnel; non viene fornito automaticamente da NasDash.
Test dal container
docker compose exec nasdash node -e "fetch('http://PRIVATE_PROXY_IP:2375/_ping').then(r=>r.text()).then(console.log)"Se l'host risponde dalla macchina ma non dal container, controlla il routing di Docker, le regole del firewall e le regole di Tailscale. Consulta anche Accesso remoto.
L'HTTP è accettabile solo su una rete privata attendibile
Il proxy non autentica questo URL in modo autonomo. Su una rete condivisa o non attendibile, usa un livello TLS autenticato o un tunnel e mantieni il filtraggio della sorgente.