Docker integrato in Plesk
Plesk include un'estensione Docker che permette di scaricare, configurare e avviare container direttamente dal pannello, senza usare la riga di comando. E' uno strumento potente per:
- Eseguire database secondari (Redis, MongoDB, Elasticsearch)
- Ospitare applicazioni in tecnologie non supportate nativamente (Go, Rust, .NET)
- Creare ambienti di test isolati
- Deployare microservizi accanto ai siti web tradizionali
Installare l'estensione Docker
Plesk Obsidian include Docker. Se non e' installato:
- Andare in Extensions Catalog
- Cercare "Docker"
- Cliccare Install
Per il backend Docker, Plesk installa automaticamente Docker Engine sul server. Verificare:
docker --version systemctl status docker
Browse delle immagini
Il pannello Docker mostra:
- Local Image Catalog: immagini già' scaricate sul server
- Docker Hub Image Catalog: cerca su Docker Hub immagini ufficiali
Cercare ad esempio "redis" o "mongo" e cliccare Run (Local) per scaricare e avviare un container.
Configurazione del container
Prima di avviare un container, il pannello mostra un form:
- Container Name: nome univoco (es. redis-prod)
- Automatic start after the system reboot: avvio automatico al reboot
- Port Mapping: mappa porte host:container (es. 6379:6379)
- Volumes: monta directory host nel container (es.
/data:/data) - Environment Variables: variabili passate al container
- Memory limit: limite RAM (es. 256MB)
- Command override: comando di avvio personalizzato
Cliccare OK per avviare.
Esposizione automatica porte
Plesk gestisce automaticamente l'esposizione delle porte container. Importante: per default Plesk fa il bind solo su 127.0.0.1 (loopback), non sull'IP pubblico. Questo e' un comportamento di sicurezza: il container e' accessibile solo dal server stesso.
Per esporlo all'esterno, spuntare Public nella port mapping. Attenzione: assicurarsi che il container sia configurato in modo sicuro (autenticazione, TLS).
Reverse proxy
Lo scenario tipico e' avere un container con un'app web (es. una dashboard, un tool come Portainer) ed esporlo tramite un dominio Plesk via reverse proxy.
- Container espone porta 127.0.0.1:8080
- Subdomain tool.dominio.it creato in Plesk
- In Apache & nginx Settings aggiungere:
ProxyPass / http://127.0.0.1:8080/ ProxyPassReverse / http://127.0.0.1:8080/
- SSL automatico con Let's Encrypt
Gestione lifecycle
Per ogni container il pannello offre:
- Restart: riavvia
- Stop: ferma
- Remove: rimuove (i volumi persistono se mappati)
- Logs: visualizza l'output del container
- Recreate: ricrea con la stessa configurazione (utile per update immagine)
Update immagine
Per aggiornare un container alla nuova versione dell'immagine:
- Pull dell'ultima immagine: cliccare Pull sull'immagine nel catalog
- Recreate del container: cliccare Recreate
I dati persistono nei volumi mappati.
Casi d'uso comuni
- Redis per cache:
redis:7-alpinecon volume/data - MongoDB:
mongo:7con volume e envMONGO_INITDB_ROOT_PASSWORD - Elasticsearch:
elasticsearch:8condiscovery.type=single-node - Portainer per gestire Docker da UI:
portainer/portainer-ce - Mailpit per testing email in staging
Limiti e considerazioni
L'estensione Docker di Plesk e' adatta per container singoli e setup semplici. Per scenari complessi (multi-container, compose, swarm) e' meglio usare Docker direttamente da SSH o strumenti dedicati.
Docker compose
L'estensione Plesk Docker NON supporta nativamente docker-compose. Per setup multi-container complessi installare compose da CLI:
dnf install docker-compose-plugin docker compose up -d
I container avviati da compose non appaiono nel pannello Plesk ma sono gestibili da CLI.
Networking custom
Plesk Docker crea container nella rete default. Per isolamento e comunicazione tra container creare reti dedicate:
docker network create my-app-net docker run --network my-app-net ...
Storage volumes
Per persistenza dati usare named volumes invece di bind mount:
docker volume create redis-data docker run -v redis-data:/data redis:7
I named volumes sono gestiti da Docker e sopravvivono a remove/recreate dei container.
Sicurezza dei container
- Usare sempre immagini ufficiali da Docker Hub
- Verificare la presenza di tag con versione (no "latest" in produzione)
- Limitare risorse (memory, CPU)
- Run come non-root quando possibile
- Aggiornare le immagini regolarmente per security patches
Backup dei container
Plesk backup non include i container Docker. Per backup dedicati:
docker commit container-id backup-image:$(date +%F) docker save backup-image:$(date +%F) | gzip > backup.tar.gz
Monitoring container
Per monitoring real-time:
docker stats docker logs -f container-name
Per monitoring centralizzato considerare Portainer, cAdvisor o Prometheus + Grafana.
Update strategy
Per minimizzare downtime durante update di un container critico:
- Pull della nuova immagine
- Start del nuovo container con porta diversa
- Test del nuovo container
- Switch del reverse proxy verso la nuova porta
- Stop del vecchio container
Esempi di stack tipici
Stack monitoring: Prometheus + Grafana + Loki, tutti container Docker, esposti via reverse proxy Plesk per monitoring.dominio.it.
Stack messaging: RabbitMQ + Redis come container, usati come backend per code Celery/BullMQ dell'app principale Plesk.
Stack search: Elasticsearch + Kibana per logging centralizzato e ricerca full-text.
Limiti CPU e memoria
Sempre impostare limiti per evitare che un container malformato consumi tutte le risorse:
docker run --memory=512m --cpus=1.0 ...
Plesk Docker permette la stessa configurazione dal pannello in Memory limit e CPU shares.
Health check Docker
Docker supporta health check nativi:
HEALTHCHECK --interval=30s --timeout=3s \ CMD curl -f http://localhost/health || exit 1
Container unhealthy possono essere automaticamente restartati da Docker stesso o da orchestrator esterni.
Hai bisogno di aiuto?
Se vuoi gestione Plesk dal team di G Tech Group, scrivici tramite il modulo di contatto.