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 nella tana del coniglio.

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

È uno strumento che funziona sulla stessa cosa che gestisce. Lo avvii con una linea 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 tutti gli altri container, inclusa se stessa. 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 già paghi per la scatola e sei già a tuo agio con SSH, Portainer si inserisce perfettamente sopra Docker senza cambiare il funzionamento di ciò che c’è sotto.

Quello è il valore.

Una scatola da 4 GB esegue Docker, Portainer e una piccola flotta di app auto-ospitate senza sforzo. E si posiziona intorno al costo 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 minacciavi di lanciare — su un server di tua proprietà.

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

Cos’è Esattamente Portainer?

Architettura di 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 web che funziona come un container Docker e gestisce gli altri tuoi container tramite il socket Docker.

È essenzialmente un frontend basato su browser per gli stessi comandi Docker che altrimenti digiteresti a mano, oltre alla gestione degli stack, accesso basato sui ruoli (se aggiorni) e una vista Dashboard della CPU e della 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 svolge 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 cosa 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 avevi dimenticato di aver dato accesso al socket.

Tratta il bind del socket come una capacità privilegiata e controlla ogni altro container che ne richiede 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?

Nope. Docker funziona bene dal terminale, e molte persone gestiscono un paio di contenitori per anni senza mai installare un’interfaccia utente sopra.

Vuoi Portainer se:

  • Gestirai più di due o tre contenitori Docker tra diverse app.
  • Preferisci cliccare “riavvia” piuttosto che riscrivere un comando Compose alle 11 di sera. 
  • 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 eseguendo uno o due container che cambiano raramente. 
  • Sei già a tuo agio con Docker Compose e sei felice di rimanerci.

Docker è ormai così diffuso che questa non è una decisione marginale. Secondo il Sondaggio degli Sviluppatori di Stack Overflow del 2025, Docker è la piattaforma di container più adottata dagli sviluppatori con oltre il 70% di utilizzo — 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 spinge ulteriormente verso astrazioni in stile PaaS e Dokploy si posiziona in un territorio simile con un’impronta più leggera — ma Portainer è quello che la maggior parte delle guide all’installazione sceglie per primo.

Se vivi in tmux e gestisci un’app, chiudi questa scheda. Stai bene. Se stai gestendo quattro app auto-ospitate e hai cercato su Google, “Cosa sono di nuovo i log di Docker?” 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ù un piccolo stack di container per progetti secondari con facilità.

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

Ecco come si traduce in carichi di lavoro reali:

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

Da DreamHost, il nostro Self-Managed VPS offre quattro livelli di 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 calcoli iniziano a lavorare a tuo favore dal primo giorno.

Una Nota Sull’Archiviazione: L’impronta di archiviazione di Portainer è minima — memorizza solo il proprio database di configurazione. La documentazione di Portainer raccomanda prestazioni a livello di SSD (≈3.5 MB/s sostenuti, più di 30,000 IOPS, <10ms di latenza di scrittura), che qualsiasi disco NVMe moderno supera facilmente. Il disco diventa una vera preoccupazione solo se stai eseguendo contenitori pesanti di database come Postgres o MySQL al fianco. Se il tuo VPS è su disco rigido 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 Installi Docker e Portainer su un VPS?

Modulo di installazione 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 dei quali trascorsi attendendo il recupero delle immagini.

1. Scegli una distribuzione Linux

Ubuntu 22.04 o 24.04 LTS è il percorso di minore resistenza. Ubuntu è ciò che il VPS Autogestito di DreamHost utilizza di default, e la maggior parte degli snippet di installazione di Docker e le discussioni di aiuto della comunità lo presuppongono. Anche Debian e AlmaLinux funzionano, comunque.

Non sei sicuro di quale versione di Ubuntu stai utilizzando? Scopri cinque modi per verificare.

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 come indicato nella documentazione ufficiale di installazione di Docker, che aggiunge la chiave GPG di Docker, il repository e docker-ce insieme al plugin Compose in un’unica soluzione.

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

Utilizza il comando di installazione ufficiale dal 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ò linea per linea:

  • -d lo esegue in modalità distaccata.
  • -p 9443:9443 è l’interfaccia utente web di Portainer su HTTPS.
  • -p 8000:8000 è il tunnel dell’Edge Agent; ti serve solo se prevedi di connettere ambienti remoti (Docker, Swarm, o Kubernetes) tramite Edge Agents in seguito, quindi omettilo su un’installazione su un singolo host.
  • --restart=always fa ripartire Portainer dopo un riavvio.
  • -v indica i flag per il collegamento del socket e il volume persistente dal passaggio 4.
  • :lts tag è il canale di rilascio di supporto a lungo termine di Portainer — la build stabile e raccomandata per la produzione.

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

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 forte e salvala in un posto sicuro. E… sei dentro!

Perché Portainer Ha Appena Eseguito Un Timeout Su Di Me?

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

Testo letterale dalla FAQ di Portainer:

Come misura di sicurezza, quando Portainer viene installato per la prima volta, aspetterà 5 minuti per la creazione di 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 fare un panino, ora la tua installazione si rifiuta di parlarti — e non hai fatto nulla di sbagliato.

La soluzione è semplice. Esegui docker restart portainer.

Questo riavvia il container, ti offre un altro intervallo di cinque minuti e ti porta alla schermata di creazione dell’amministratore. Ripeti quanto necessario. Benvenuto nel self-hosting.

Se stai scrivendo lo script per l’installazione di una flotta (Ansible, Terraform, un pipeline di distribuzione), Portainer accetta un flag --admin-password-file all’avvio che elimina 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 Puoi Impedire a Docker di Eludere il Tuo Firewall?

Confronto del firewall Docker: senza la regola DOCKER-USER permette l'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 dalla rete Internet pubblica anche se ufw status mostra la porta 80 come negata. Docker indirizza il traffico dei container nella tabella NAT, il che significa che i pacchetti vengono dirottati prima che raggiungano le catene INPUT e OUTPUT utilizzate da UFW.

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 permanenti 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 da fuori il tuo VPS che le porte che pensi siano chiuse siano effettivamente chiuse.

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

Specificamente per Portainer, la porta 9443 è pubblicata, il che significa che l’interfaccia amministrativa è accessibile da qualsiasi parte su internet pubblico non appena il container parte. Due percorsi ragionevoli: limitare il 9443 tramite regole DOCKER-USER (consenti solo l’IP di casa o dell’ufficio), oppure proteggerla con un tunnel VPN come WireGuard così l’interfaccia non avrà mai un IP pubblico.

Cosa Dovresti Bloccare 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:

  • Forza Solo HTTPS. Portainer usa HTTPS sulla porta 9443 di default ma non lo impone. Attiva l’interruttore nelle Impostazioni in modo che l’interfaccia rifiuti completamente HTTP.
  • Sostituisci il certificato firmato automaticamente. Carica un certificato che hai generato, o usa Portainer con un proxy inverso NGINX che possiede un certificato di Let’s Encrypt. Dopo il primo giorno, cliccare ogni volta sull’avviso del browser è un’abitudine di cui ti pentirai.
  • Usa un vero nome utente amministratore. “Admin” è il primo tentativo in qualsiasi attacco di riempimento delle credenziali. Scegli qualcosa di specifico per te.
  • Limita l’interfaccia 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.
  • Audita 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 bind aggiuntivo è un nuovo percorso verso l’host. Se un container sostiene di aver bisogno del socket, chiedi perché — e considera un proxy del socket se la risposta è “per il monitoraggio”.

Come Utilizzi 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 correttamente, e inizi a cliccare su un pulsante invece. Il vantaggio maggiore è la gestione dello stack.

Uno stack di Portainer è un’app multi-container definita da un file Docker Compose. Qualsiasi cosa tu possa esprimere come un docker-compose.yml può essere implementata 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 dello Stack con la tabella dei contenitori, i log, le statistiche e i controlli di gestione per i contenitori Docker.

Il percorso Git è quello che conta. Indichi a Portainer un repository pubblico o autenticato e un percorso per docker-compose.yml. Portainer può eseguire il polling del repository secondo una programmazione (il valore predefinito è di cinque minuti) oppure attendere un webhook da GitHub. Quando il file Compose cambia a monte, Portainer lo scarica e lo ridispiega automaticamente.

Questa è la versione self-hosted di “deploy on push” senza pagare un PaaS per il privilegio.

Anche le piccole vittorie quotidiane si accumulano. Pensa ai log in un pannello invece di docker logs -f, riavvii con un 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 Agente Edge, che è il modo in cui un assistente IA auto-ospitato o un server multimediale si distribuisce su più box.

Quanto Costa Portainer? (E Quando Il Gratuito Smette Di Essere Gratuito?)

La Portainer Community Edition è gratuita e illimitata, punto. L’installazione che hai appena eseguito è completamente funzionante per un host con tutti i container che il tuo VPS può contenere. Nessun limite di nodo, nessuna scadenza, nessuna schermata di sollecito.

EdizioneCostoNodiIdeale per
Edizione CommunityGratuita, open-sourceIllimitatiProgetti personali, homelab, auto-hosting su singolo VPS
Edizione Business (Take 3)Gratuita perpetuaFino a 3Piccoli homelabs che desiderano RBAC e registri di controllo
Avvio BusinessDa $99/mese5, 10, o 15Piccoli team che gestiscono infrastrutture reali
Business ScaleDa $199/meseFino a 25Team in crescita che necessitano di supporto 9×5
ImpresaPreventivoIllimitatiEsigenze di conformità e supporto 24/7

Il livello gratuito perpetuo di tre nodi (chiamato Take 3) è importante da conoscere: rinnovi la licenza annualmente senza costi fintanto che rimani con 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 audit e registrazioni delle attività senza pagare. Oltre a questo, Business Starter è a $99/mo sulla pagina dei prezzi aziendali di Portainer per 5/10/15 nodi; Scale è a $199/mo fino a 25 nodi; e Enterprise è su preventivo.

Per quasi tutti coloro che leggono questo, la scelta migliore è l’Edizione Comunitaria. Sarà sufficiente per un auto-host su un singolo VPS per tutta la durata del box. Le edizioni Business diventano vantaggiose solo quando si gestiscono effettivi conteggi di nodi, è necessario un RBAC su un team o si richiede supporto commerciale per la conformità.

Dovresti Aggiungere Portainer o Saltarlo?

Ecco la risposta onesta in due frasi:

✅ Se hai intenzione di condividere questo server, effettuare il deploy da Git o eseguire più di tre container da qui a 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 ti mancherà l’interfaccia utente che non hai installato.

La vera questione non è Portainer contro niente 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 portano più lontano di quanto la maggior parte delle persone si aspetti: un stack di automazione, un server fotografico, una piattaforma di newsletter e un assistente IA locale, tutto per meno di quello che probabilmente paghi per due servizi di streaming che guardi di rado.

Non è un cattivo affare per una scatola che possiedi effettivamente.

Domande Frequenti Su Docker E Portainer

A cosa serve Portainer?

Portainer è utilizzato per gestire i container Docker, Docker Swarm e Kubernetes attraverso un’interfaccia web. Funziona come un container Docker, si collega al socket Docker dell’host e ti offre una vista e un controllo tramite browser su tutti gli altri container sull’host — avviando e fermando i container, distribuendo stack multi-container, visualizzando i log e gestendo l’accesso degli utenti senza effettuare l’accesso SSH.

Ho bisogno di Portainer se ho Docker?

No, non hai bisogno di Portainer per usare Docker. Docker funziona completamente da terminale, e molti autogestori non installano mai un’interfaccia utente sopra.

Portainer si rivela utile quando stai gestendo più di due o tre container, condividendo l’accesso con qualcuno che non vive in un terminale, o implementando 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 è in esecuzione sulla porta 9443 di default per l’accesso HTTPS all’interfaccia web, più la porta 8000 per il tunnel dell’Edge Agent se colleghi 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. I valori predefiniti provengono direttamente dal documento ufficiale di installazione di Portainer per Linux.

Quanta RAM necessita Portainer?

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

Presso DreamHost, dimensioniamo il nostro VPS Autogestito di livello base a 4 GB di RAM proprio per questo tipo di carico di lavoro — abbastanza spazio per Portainer più un piccolo stack di contenitori per 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 offre anche un livello gratuito perpetuo per 3 nodi chiamato Take 3, che si rinnova annualmente senza costi purché rimani a tre nodi o meno. Oltre i tre nodi, i prezzi per le aziende partono da $99/mese per il piano Starter secondo la pagina dei prezzi aziendali 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 gratuito perpetuo di 3 nodi Take 3.

Può Portainer gestire più Docker host?

Sì, Portainer può gestire più host Docker tramite Edge Agents, che funzionano su ogni host remoto e interrogano il server centrale Portainer sulla porta dell’interfaccia utente, utilizzando la porta 8000 per aprire un tunnel sicuro per i comandi di gestione. Per coloro che gestiscono un unico VPS, questo è eccessivo. Per chiunque gestisca tre o più server che condividono un piano di controllo, ecco perché la porta 8000 è inclusa nella linea di installazione.

Docker Elude UFW Su Un VPS?

Sì, Docker bypassa UFW per impostazione predefinita perché Docker gestisce il traffico dei container a livello di 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 che UFW utilizza.” La soluzione è la catena iptables DOCKER-USER, e lo strumento standard della comunità per integrare UFW in essa è chaifeng/ufw-docker.

VPS autogestito

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 VPS autogestito