Come Eseguire Docker e Portainer su un VPS (Guida 2026)

Pubblicato: di Dallas Kashuba
Come Eseguire Docker e Portainer su un VPS (Guida 2026) thumbnail

Hai mai sentito parlare di Dockerception?

Beh, tieniti forte al cappello. Stiamo per addentrarci nel tunnel del coniglio.

Portainer, l’interfaccia web che stai per installare su Docker, è a sua volta un container Docker.

È uno strumento che funziona proprio sulla cosa che gestisce. Lo avvii con una riga di docker run, e la prima cosa che fa è tornare indietro attraverso un piccolo buco nell’host (un file socket) e chiedere al demone Docker di mostrargli ogni altro container, incluso se stesso. Da quella scheda del browser, puoi aggiornare Portainer. Riavviare Portainer. E gestire tutti gli altri tuoi container Docker.

L’interfaccia utente che stai guardando è a un clic di distanza dall’eliminare l’interfaccia utente che stai guardando.

Su un VPS dove stai già pagando per il server ed è già a tuo agio con SSH, Portainer si inserisce perfettamente sopra Docker senza modificare il funzionamento di ciò che c’è sotto.

Questo è il valore.

Un box da 4 GB esegue Docker, Portainer e una piccola flotta di app auto-ospitate senza alcun problema. E il costo si aggira su quello di un paio di abbonamenti streaming al mese. Sufficiente per gestire l’automazione domestica, l’archivio foto di famiglia, l’assistente IA e la newsletter che pensavi di lanciare — su un server di tua proprietà.

Ecco come farlo funzionare, proteggerlo e iniziare a vedere il valore.

Cos’è Esattamente Portainer?

Architettura Portainer che mostra il socket Docker che collega portainer.io all'interno di una VPN al browser per la gestione remota di Docker.

Portainer è un’interfaccia utente web che funziona come un contenitore Docker e gestisce i tuoi altri contenitori tramite il socket Docker.

È essenzialmente un frontend basato su browser per gli stessi comandi Docker che altrimenti digiteresti manualmente, oltre alla gestione degli stack, accesso basato sui ruoli (se effettui l’upgrade) e una visualizzazione del pannello di CPU e memoria.

La connessione socket è ciò che la fa funzionare. Il collegamento appare come -v /var/run/docker.sock:/var/run/docker.sock nel comando di installazione, e quella singola riga sta facendo tutto il lavoro pesante. Senza di essa, Portainer è un’interfaccia utente per un host Docker vuoto. Con essa, Portainer diventa il telecomando dell’host Docker.

Una cosa da tenere a mente: qualsiasi processo che può raggiungere /var/run/docker.sock può effettivamente eseguire qualsiasi operazione come root sull’host. Questa è una funzionalità quando è Portainer a richiederlo e un problema quando è un container che hai avviato la scorsa settimana e di cui hai dimenticato di aver dato accesso al socket.

Tratta il collegamento del socket come una capacità privilegiata e verifica ogni altro contenitore che ne richieda uno.

Ricevi contenuti direttamente nella tua casella di posta

Iscriviti ora per ricevere tutti gli ultimi aggiornamenti direttamente nella tua casella di posta.

Hai Bisogno Di Portainer Se Hai Già Docker?

No. Docker funziona bene dal terminale, e molte persone gestiscono un paio di container per anni senza mai installare una UI sopra.

Vuoi Portainer se:

  • Gestirai più di due o tre container Docker su diverse applicazioni.
  • Preferisci cliccare su “riavvia” piuttosto che riscrivere un comando Compose alle 23:00.
  • Stai condividendo l’accesso con qualcuno che non vive in un terminale.
  • Vuoi distribuire aggiornamenti dello stack da un repo Git senza scrivere uno script di distribuzione.

Salta Portainer se:

  • Stai gestendo uno o due container che cambiano raramente. 
  • Sei già a tuo agio con Docker Compose e sei felice di restarci.

Docker è ormai così diffuso che questa non è una decisione di nicchia. Secondo il Sondaggio degli Sviluppatori di Stack Overflow 2025, Docker è la piattaforma di contenitori più adottata tra gli sviluppatori, con un utilizzo superiore al 70% — il più grande salto annuale di qualsiasi tecnologia tracciata dal sondaggio. Il progetto Portainer ha circa 37.000 stelle su GitHub.

Esistono altre opzioni. Coolify si spinge ulteriormente verso astrazioni di tipo PaaS e Dokploy si colloca in un territorio simile con un’impronta più leggera — ma Portainer è quello che la maggior parte delle guide all’installazione consiglia per primo.

Se vivi in tmux e gestisci un’app, chiudi questa scheda. Stai bene. Se gestisci quattro app self-hosted e hai cercato su Google, “Che cosa sono i Docker logs?” due volte questo mese, continua a leggere.

Quanto Grande Deve Essere Un VPS Per Eseguire Docker e Portainer?

Un VPS da 4 GB gestisce Portainer più una piccola pila di container per progetti secondari comodamente.

Portainer raccomanda un host con almeno 2 GB di RAM e 1 core della CPU, anche se il processo del Server Portainer stesso rimane inattivo intorno ai 100 MB. Il demone Docker aggiunge qualche centinaio di MB di sovraccarico prima che le tue app inizino.

Ecco come si applica a carichi di lavoro reali:

Tabella di confronto dei requisiti di carico di lavoro VPS: un'app singola richiede 4 GB, Nextcloud richiede 8 GB, GitLab con CI/CD richiede 16 GB di RAM.

Da DreamHost, il nostro VPS Auto-gestito offre quattro livelli Stack basati su RAM (Stack 4, 8, 16 e 32), con il livello iniziale Stack 4 dimensionato esattamente per questo tipo di piccolo host Docker. (E sì, lo storage NVMe e l’accesso completo Root sono inclusi.)

Se sei indeciso se il self-hosting valga il tempo, Stack 4 è la dimensione in cui i conti iniziano a lavorare a tuo favore fin dal primo giorno.

Una Nota Sull’Archiviazione: L’impronta di archiviazione di Portainer è minima — memorizza solo il suo database di configurazione. I documenti di Portainer raccomandano prestazioni a livello di SSD (≈3.5 MB/s sostenuti, 30,000+ IOPS, <10ms di latenza di scrittura), che qualsiasi unità NVMe moderna supera facilmente. Il disco diventa una vera preoccupazione solo se stai eseguendo contenitori pesanti di database come Postgres o MySQL insieme ad esso. Se il tuo VPS è su disco rotante nel 2026, l’interfaccia utente di Portainer inizierà a sentirsi lenta molto prima della RAM. Il nostro consiglio: aggiorna il disco prima del piano.

Come Si Installa Docker e Portainer su un VPS?

Modulo di configurazione iniziale di Portainer.io per la creazione di un account amministratore con nome utente, password che richiede un minimo di 12 caratteri, e raccolta di statistiche opzionale.

Ci vogliono sei passaggi e circa 30 minuti, la maggior parte del tempo è dedicata all’attesa del caricamento delle immagini.

1. Scegli una distribuzione Linux

Ubuntu 22.04 o 24.04 LTS è il percorso di minore resistenza. Ubuntu è quello che viene eseguito di default sui VPS Self-Managed di DreamHost, e la maggior parte degli snippet di installazione di Docker e dei thread di aiuto della comunità lo presuppongono. Anche Debian e AlmaLinux funzionano, comunque.

Non sei sicuro della versione di Ubuntu che stai usando? Scopri cinque modi per controllare.

2. Installa Docker dal repository ufficiale

Non apt install docker.io. Questo scarica una versione più vecchia di Docker dall’archivio Ubuntu.

Invece, utilizza il proprio repository apt di Docker secondo la documentazione ufficiale di installazione di Docker, che aggiunge la chiave GPG di Docker, il repository e docker-ce più il plugin Compose tutto in una volta.

3. Verifica Che Docker Sia In Esecuzione

Esegui docker run hello-world.

Se non ricevi il messaggio “Hello from Docker!”, correggi il demone prima di sovrapporre Portainer.

4. Crea Un Volume Persistente Per I Dati Di Portainer

Successivamente, esegui docker volume create portainer_data.

Mantenere il database di Portainer su un volume Docker (non all’interno del contenitore) significa che un aggiornamento di Portainer non cancellerà la tua configurazione.

5. Esegui Portainer Community Edition

Usa il comando di installazione ufficiale da documento di installazione Linux di Portainer:

  docker run -d 
  -p 8000:8000 
  -p 9443:9443 
  --name portainer 
  --restart=always 
  -v /var/run/docker.sock:/var/run/docker.sock 
  -v portainer_data:/data 
  portainer/portainer-ce:lts

Analizziamo ciò riga per riga:

  • -d lo esegue in modalità distaccata.
  • -p 9443:9443 è la UI web di Portainer su HTTPS.
  • -p 8000:8000 è il tunnel dell’Edge Agent; ne hai bisogno solo se intendi connettere ambienti remoti (Docker, Swarm, o Kubernetes) tramite Edge Agents in seguito, quindi omettilo in un’installazione su un singolo host.
  • --restart=always riavvia Portainer dopo un riavvio del sistema.
  • -v le opzioni indicano il collegamento del socket e il volume persistente dal passaggio 4.
  • :lts il tag indica il canale di rilascio del Supporto a Lungo Termine di Portainer — la build stabile, raccomandata per la produzione.

6. Apri L’Interfaccia E Crea Il Tuo Account Amministratore

Indirizza il tuo browser verso https://YOUR_VPS_IP:9443.

Clicca attraverso l’avviso del certificato firmato automaticamente. Arriverai alla schermata “crea l’utente amministratore iniziale”. Scegli un nome utente che non sia admin, imposta una password sicura e salvatela in un posto sicuro. E… sei dentro!

Perché Portainer Ha Appena Eseguito Un Time Out Su Di Me?

Perché Portainer aspetta esattamente cinque minuti affinché qualcuno lo rivendichi alla prima installazione. Se nessuno lo fa, chiude la porta.

Verbatim dalla FAQ ufficiale di Portainer:

Come misura di sicurezza, quando Portainer viene installato per la prima volta, attenderà 5 minuti affinché venga creato un utente amministratore. Se un utente non viene creato entro quei 5 minuti, il Server Portainer smetterà di ascoltare le richieste.

Traduzione: se hai impiegato il Passo 5 a preparare un panino, ora la tua installazione si rifiuta di comunicare con te — e non hai fatto nulla di sbagliato.

La soluzione è semplice. Esegui docker restart portainer.

Riavvia il contenitore, ti offre un altro intervallo di cinque minuti e ti porta alla schermata di creazione dell’amministratore. Ripeti quanto necessario. Benvenuto nella self-hosting.

Se stai scrivendo uno script per l’installazione di una flotta (Ansible, Terraform, una pipeline di deployment), Portainer accetta un flag --admin-password-file all’avvio che bypassa completamente il timer creando l’utente admin da un file al primo avvio. Il documento di installazione copre la sintassi. Per un’installazione VPS una tantum, il trucco del riavvio va bene.

Come Fermi Docker Dal Bypassare Il Tuo Firewall?

Confronto firewall Docker: senza la regola DOCKER-USER consente accesso illimitato al container, con la regola DOCKER-USER aggiunge protezione firewall.

Questa sorprende le persone in produzione, non solo in sviluppo — quindi ascolta.

Quando esegui docker run -p 80:80, la porta pubblicata è accessibile da internet anche se ufw status indica che la porta 80 è negata. Docker instrada il traffico dei container nella tabella NAT, il che significa che i pacchetti vengono deviati prima di raggiungere le catene INPUT e OUTPUT che UFW utilizza.

UFW non è rotto. È solo nel corridoio sbagliato.

La soluzione che Docker stesso raccomanda è la catena iptables DOCKER-USER, riservata alle regole dell’amministratore in modo che Docker non le sovrascriva al riavvio. (Le regole non sopravvivono a un riavvio completo dell’host da sole — rendile persistenti con iptables-persistent o un servizio systemd; ufw-docker gestisce questo per te.) Lo strumento standard della comunità per integrare UFW in DOCKER-USER è chaifeng/ufw-docker, che automatizza la generazione delle regole.

Installalo, poi verifica con una scansione delle porte dall’esterno del tuo VPS che le porte che pensi siano chiuse siano effettivamente chiuse.

Ho visto questo ingannare un abile ingegnere due volte nella stessa settimana, prima su un computer personale, poi su quello di un cliente. UFW diceva una cosa, internet pubblico un’altra, e la verità era nelle iptables.

Per Portainer in particolare, la porta 9443 è pubblicata, il che significa che l’interfaccia amministrativa è accessibile da qualsiasi parte su internet pubblico non appena il container viene avviato. Due percorsi ragionevoli: limitare il 9443 tramite regole DOCKER-USER (consenti solo il tuo IP di casa o ufficio), oppure proteggerlo con un tunnel VPN come WireGuard in modo che l’interfaccia non abbia mai un IP pubblico.

Cosa Dovresti Proteggere Subito Dopo Il Primo Accesso?

Sei dentro. Cinque cose da fare prima di chiudere quella scheda del browser, secondo la guida alla sicurezza di Portainer:

  • Imposta Solo HTTPS. Portainer utilizza HTTPS sulla porta 9443 di default ma non lo impone. Attiva l’opzione nelle Impostazioni per rifiutare completamente HTTP.
  • Sostituisci il certificato firmato automaticamente. Carica un certificato che hai generato, o configura Portainer con un proxy inverso NGINX che utilizza un certificato di Let’s Encrypt. Dopo il primo giorno, cliccare ogni volta sull’avviso del browser è un’abitudine di cui ti pentirai.
  • Utilizza un vero nome utente admin. “Admin” è la prima ipotesi in qualsiasi tentativo di inserimento credenziali. Scegli qualcosa di specifico per te.
  • Limita l’accesso alla UI a una VPN. WireGuard è il modello raccomandato da Portainer. Un 9443 pubblico con credenziali forti va bene. Un 9443 accessibile solo su una rete privata è meglio.
  • Verifica il binding del socket Docker. Qualsiasi cosa con accesso in lettura a /var/run/docker.sock può eseguire qualsiasi operazione come root sul host. Non montare il socket casualmente in altri container. Ogni nuovo binding è un nuovo percorso verso l’host. Se un container afferma di aver bisogno del socket, chiedi perché — e considera un proxy del socket se la risposta è “per il monitoraggio”.

Come Usi Effettivamente Portainer Nella Vita Quotidiana?

Il vantaggio dell’installazione di Portainer è il giorno in cui smetti di usare SSH per riavviare un container che non funziona bene e inizi a cliccare un pulsante invece. Il vantaggio maggiore è la gestione degli stack.

Un stack Portainer è un’app multi-container definita da un file Docker Compose. Tutto ciò che puoi esprimere come un docker-compose.yml puoi distribuirlo come uno stack, con tre percorsi principali (esclusi i template personalizzati) secondo la documentazione ufficiale degli stack:

  • Incolla Compose nell’interfaccia utente
  • Carica un file Compose
  • Indirizza Portainer a un repository Git
Dashboard di Portainer.io che mostra i Dettagli Stack con la tabella dei container, log, statistiche e controlli di gestione per i container Docker.

Il percorso Git è quello che conta. Configuri Portainer su un repository pubblico o autenticato e un percorso per docker-compose.yml. Portainer o controlla il repository secondo una programmazione (il predefinito è cinque minuti) o attende un webhook da GitHub. Quando il file Compose cambia a monte, Portainer lo scarica e lo ridispiega automaticamente.

Questa è la versione auto-ospitata di “deploy on push” senza pagare una PaaS per il privilegio.

Anche le piccole vittorie quotidiane si sommano. Immagina i log in un panello invece di docker logs -f, riavvii con un solo clic, ricostruzione di uno stack da un pulsante e grafici delle risorse che puoi esaminare in tre secondi invece di eseguire Docker stats.

Portainer supporta anche host Docker remoti tramite il suo Edge Agent, che è il modo in cui un assistente AI auto-ospitato o un server multimediale si distribuisce su più dispositivi.

Quanto Costa Portainer? (E Quando il Gratuito Smette di Essere Gratuito?)

Portainer Community Edition è gratuito e illimitato, punto. L’installazione appena completata è completamente dotata per un host con tutti i contenitori che il tuo VPS può contenere. Nessun limite di nodi, nessuna scadenza, nessuna schermata di sollecito.

EdizioneCostoNodiIdeale per
Edizione CommunityGratis, open-sourceIllimitatiProgetti personali, homelab, self-hosting su singolo VPS
Edizione Business (Take 3)Gratis per sempreFino a 3Piccoli homelabs che desiderano RBAC e log di audit
Business StarterDa $99/mese5, 10, o 15Piccoli team che gestiscono infrastrutture reali
Business ScaleDa $199/meseFino a 25Team in crescita che necessitano di supporto 9×5
EnterprisePreventivoIllimitatiEsigenze di conformità e supporto 24/7

Il livello perpetuo gratuito a tre nodi (chiamato Take 3) vale la pena conoscerlo: rinnovi la licenza annualmente senza costi fintanto che rimani a tre nodi o meno.

Questo è il piano giusto per la maggior parte dei laboratori domestici e piccoli team che desiderano il controllo degli accessi basato sui ruoli (RBAC), registri di controllo e registrazione delle attività senza pagare. Al di sopra di questo, Business Starter costa $99/mese sulla pagina dei prezzi business di Portainer per nodi 5/10/15; Scale è $199/mese fino a 25 nodi; e Enterprise è su preventivo.

Per quasi tutti coloro che leggono questo, la scelta migliore è l’Edizione Community. Sarà adatta per un auto-ospitante su un unico VPS per tutta la durata del server. Le edizioni Business diventano convenienti solo quando si gestiscono conteggi reali di nodi, si necessita di RBAC su un team, o si richiede supporto commerciale per conformità.

Dovresti Aggiungere Portainer o Evitarlo?

Ecco la risposta onesta in due frasi:

✅ Se prevedi di condividere questo server, effettuare il deploy da Git o eseguire più di tre container tra un anno, installa Portainer mentre l’host è nuovo e le tue abitudini si stanno ancora formando attorno ad esso.

❌ Se stai eseguendo un’app tranquilla e ti trovi bene nel terminale, non sentirai la mancanza dell’interfaccia utente che non hai installato.

La vera domanda non è Portainer vs. nessun Portainer. È se l’auto-hosting sia la scelta giusta per te — e hai risposto a questa domanda quando hai aperto questa scheda.

Un VPS da 4 GB, Docker e Portainer CE ti permettono di fare più di quanto la maggior parte delle persone si aspetti — un stack di automazione, un server per foto, una piattaforma per newsletter e un assistente IA locale — per meno di quanto probabilmente paghi per due servizi di streaming che guardi raramente.

Non è un cattivo affare per una scatola di cui sei effettivamente proprietario.

Domande Frequenti Su Docker E Portainer

A cosa serve Portainer?

Portainer viene utilizzato per gestire i contenitori Docker, Docker Swarm e Kubernetes tramite un’interfaccia web. Funziona come un contenitore Docker, si connette al socket Docker dell’host e ti offre una vista e un controllo tramite browser su ogni altro contenitore sull’host — avviando e fermando i contenitori, distribuendo stack multi-contenitore, visualizzando i log e gestendo l’accesso degli utenti senza bisogno di SSH.

Ho bisogno di Portainer se ho Docker?

No, non hai bisogno di Portainer per usare Docker. Docker funziona completamente dal terminale, e molti auto-ospitanti non installano mai un’interfaccia utente su di esso.

Portainer si rende utile quando devi gestire più di due o tre container, condividere l’accesso con qualcuno che non lavora in un terminale, o quando devi effettuare aggiornamenti di stack da un repository Git. Tralascialo se gestisci uno o due container stabili e ti trovi a tuo agio con Docker Compose.

Su quale porta funziona Portainer?

Portainer è attivo sulla porta 9443 di default per l’accesso HTTPS all’interfaccia web, più la porta 8000 per il tunnel dell’Edge Agent se connetti host Docker remoti successivamente. La porta 8000 è opzionale in un’installazione su un singolo host; puoi omettere il flag -p 8000:8000 dal comando di installazione senza influenzare l’interfaccia utente locale. Le impostazioni predefinite sono direttamente tratte dal documento ufficiale di installazione di Portainer per Linux.

Quanta RAM richiede Portainer?

Portainer di per sé rimane inattivo intorno a 100 MB prima di caricare qualsiasi altra cosa. Aggiungi qualche centinaio di MB per il demone Docker, e poi dimensiona a partire da lì in base a ciò che stai effettivamente eseguendo.

Da DreamHost, dimensioniamo il nostro VPS Autogestito a livello di ingresso con 4 GB di RAM proprio per questo tipo di carico di lavoro — abbastanza spazio per Portainer più una piccola pila di contenitori di progetti secondari come Ghost, n8n, un database Postgres e un reverse proxy.

Portainer è gratuito?

Sì. L’edizione Community di Portainer è completamente gratuita, e l’edizione Business ha anche un livello gratuito perpetuo di 3 nodi chiamato Take 3, che si rinnova annualmente senza costi finché resti a tre nodi o meno. Sopra i tre nodi, il prezzo Business inizia da $99/mese nel piano Starter per la pagina dei prezzi business di Portainer.

Qual è la differenza tra Portainer CE e l’edizione Business?

Portainer Community Edition è gratuita, open-source, e completamente equipaggiata per uso personale.

Business Edition aggiunge il controllo degli accessi basato sui ruoli, registri di controllo, registri delle attività, e supporto commerciale, e inizia da $99/mese per 5 nodi dopo il livello perpetuo gratuito di 3 nodi Take 3.

Può Portainer gestire più host Docker?

Sì, Portainer può gestire più host Docker tramite Edge Agents, che operano su ogni host remoto e interrogano il server centrale Portainer sulla porta dell’UI, utilizzando la porta 8000 per aprire un tunnel sicuro per i comandi di gestione. Per chi ospita su un singolo VPS, questo è eccessivo. Per chiunque gestisca tre o più server che condividono un piano di controllo, questo è il motivo per cui il 8000 è nella linea di installazione.

Docker elude UFW su un VPS?

Sì, Docker elude UFW di default perché Docker gestisce il traffico dei container allo strato NAT di iptables, che si trova davanti alle catene INPUT e OUTPUT di UFW.

Per la documentazione sul filtraggio dei pacchetti di Docker, “I pacchetti vengono deviati prima che raggiungano le catene INPUT e OUTPUT utilizzate da UFW.” La soluzione è la catena iptables DOCKER-USER, e lo strumento standard della comunità per integrare UFW in essa è chaifeng/ufw-docker.

VPS

Possiedi l’intero stack. App, IA, database e altro ancora.

Mantieni ogni credenziale e conversazione su un server che controlli tu, con velocità NVMe e banda illimitata integrate.

Esplora i piani di hosting VPS