Blog

Tutorial, guide e novità di prodotto.

Sviluppatori

Che cos'è Docker e come si usa su un VPS?

3 novembre 2026 6 min di lettura
Condividi questo articolo

Docker è uno strumento che esegue un'applicazione, insieme a tutto ciò che le serve, in un pacchetto isolato chiamato container. Su un VPS, usare Docker significa avviare un'app da un pacchetto già pronto invece di installarla pezzo per pezzo sul server. Installazione e rimozione richiedono pochi comandi e le app non disturbano le impostazioni l'una dell'altra.

A differenza di una macchina virtuale, un container non porta con sé un sistema operativo. Condivide il kernel del server, quindi parte in pochi secondi e usa poca memoria. In cambio il suo isolamento non è forte quanto quello di una macchina virtuale.

Quattro termini bastano per iniziare

TermineCosa significa
ImmagineIl pacchetto già pronto di un'applicazione. Si scarica da un registry come Docker Hub.
ContainerUna copia in esecuzione avviata da un'immagine.
VolumeSpazio di archiviazione persistente che conserva i tuoi dati anche quando il container viene eliminato.
ComposeUno strumento che definisce più container in un unico file compose.yaml e li gestisce con un solo comando.

Eliminare un container elimina i file al suo interno. Monta su un volume o su una cartella del server tutto ciò che deve sopravvivere, come un database.

Come si installa Docker su Ubuntu?

Prima connettiti al server via SSH. Il pacchetto docker.io dei repository di Ubuntu funziona e il server Docker preinstallato di Seturack lo usa. Per l'ultima versione, usa il repository apt di Docker. Secondo la documentazione ufficiale di Docker, i pacchetti Ubuntu come docker.io e docker-compose sono in conflitto con quelli di Docker, quindi rimuovili prima se sono installati.

  1. Segui la sezione "apt repository" nella pagina di installazione di Docker per Ubuntu per aggiungere la chiave di firma e la sorgente del repository. Esegui i comandi che trovi lì così come sono, perché cambiano da una versione all'altra.
  2. Installa i pacchetti: sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  3. Controlla che il servizio sia in esecuzione: sudo systemctl status docker
  4. Esegui il container di prova: sudo docker run --rm hello-world

Se vedi il messaggio di benvenuto, Docker è pronto. Su Ubuntu e Debian il servizio parte da solo a ogni avvio.

Il tuo primo container

Avvia un web server con un solo comando:

docker run -d --name web --restart unless-stopped -p 80:80 nginx:1.30

-d esegue il container in background. --restart unless-stopped lo riavvia quando il server si riavvia o il container va in crash. -p 80:80 collega la porta 80 del server al container. nginx:1.30 è il nome dell'immagine con il tag della versione. Il tag è solo un esempio, quindi scegli il tag stabile attuale dalla pagina ufficiale di Nginx su Docker Hub. Apri l'indirizzo IP del server in un browser e vedrai la pagina di benvenuto di Nginx. Per rimuoverlo, esegui docker rm -f web.

Monta un volume per i dati persistenti, per esempio -v sitedata:/usr/share/nginx/html. Elenchi i volumi con docker volume ls. I servizi nello stesso file compose.yaml si raggiungono tra loro per nome del servizio, quindi la tua applicazione si connette al database come db, per esempio.

Quando hai più container, mettili tutti in un file compose.yaml ed esegui docker compose up -d nella cartella del file. Le chiavi image, restart, ports e volumes del file corrispondono ai flag visti sopra. Controlli lo stato con docker compose ps, leggi i log con docker compose logs -f e spegni tutto con docker compose down.

Comandi che userai ogni giorno

ComandoA cosa serve
docker psElenca i container in esecuzione. Aggiungi -a per vedere anche quelli fermi.
docker logs -f webSegue in tempo reale il log del container web.
docker exec -it web shApre una shell dentro il container.
docker statsMostra l'uso di CPU e memoria dei container.
docker compose pull e docker compose up -dScarica la nuova immagine e sostituisce il container con quello nuovo. I dati nei volumi vengono mantenuti.

Prima di aggiornare, leggi le note di rilascio dell'app e alza tu il tag della versione nel file compose. Il senso di fissare il tag è che un aggiornamento diventi una decisione, non un incidente.

Quattro cose a cui fare attenzione

  • Docker aggira le regole di ufw. Secondo la documentazione ufficiale, le porte che Docker pubblica vengono aperte prima che si applichino le regole di ufw. Una regola ufw che nega una di queste porte non ha effetto. Associa solo all'indirizzo locale un servizio che non deve essere raggiungibile dall'esterno, per esempio -p 127.0.0.1:5432:5432. I container sulla stessa rete Docker si raggiungono già tra loro, quindi non devi pubblicare un database.
  • Il tag latest. Se non indichi nessun tag, viene scaricato latest. Al prossimo pull la tua app può passare a una versione che non ti aspettavi. Scrivi un tag preciso e pianifica tu gli aggiornamenti.
  • Il gruppo docker equivale a root. Aggiungere un utente al gruppo docker gli dà privilegi a livello root (documentazione ufficiale). Aggiungi solo account di cui ti fidi.
  • Log e immagini riempiono il disco. L'impostazione predefinita dei log di Docker non ha un limite di dimensione. Impostalo sul container: --log-opt max-size=10m --log-opt max-file=3. docker system df mostra l'uso del disco e docker image prune rimuove le immagini senza tag.

Docker o installazione diretta?

Docker aiuta quando fai girare più app che richiedono versioni diverse su un solo server, quando vuoi provare un'app e rimuoverla in modo pulito, o quando lo sviluppatore pubblica un'immagine ufficiale. Per un caso semplice come un singolo sito WordPress, va bene anche un'installazione diretta. Docker è uno strato in più: aggiornarlo, monitorarlo e fare il backup dei volumi è compito tuo. Se hai dubbi, parti da una sola piccola applicazione. Non devi spostare tutto su Docker in una volta.

Docker è già pronto su Seturack

Se non vuoi installare Docker da solo, puoi ordinare un server con l'app Docker. Docker e Compose sono già installati e la configurazione richiede circa 2,5 minuti. Il firewall (ufw) è attivo e dall'esterno è aperta solo la porta SSH, fail2ban protegge SSH e i log dei container sono limitati a 3 file da 10 MB ciascuno per container. L'app non ha un'interfaccia web, quindi il pannello non mostra nessun indirizzo del sito. Vale anche qui la trappola delle porte descritta sopra. Per partire con un server già pronto, vedi la pagina Docker VPS.

Già pronto su Seturack: Portainer, Coolify, Dokploy.

Commenti0

Ancora nessun commento

Condividi per primo la tua opinione.

Partecipa alla discussione

Accedi o registrati per lasciare un commento.

Non perderti nessun articolo

Ricevi gli ultimi tutorial, le guide e le novità sui prodotti nella tua casella email.

La tua iscrizione alla newsletter è attiva.