{"id":82082,"date":"2026-06-19T07:30:00","date_gmt":"2026-06-19T14:30:00","guid":{"rendered":"https:\/\/dhblog2.dream.press\/blog\/?p=82082"},"modified":"2026-09-24T15:21:47","modified_gmt":"2026-09-24T22:21:47","slug":"come-eseguire-docker-e-portainer-su-un-vps-guida-2026-it","status":"publish","type":"post","link":"https:\/\/www.dreamhost.com\/blog\/it\/come-eseguire-docker-e-portainer-su-un-vps-guida-2026-it\/","title":{"rendered":"Come Eseguire Docker e Portainer su un VPS (Guida 2026)"},"content":{"rendered":"<div class=\"tldr-block\" style=\"display: none;\">\n\t<div class=\"svg\">\n\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 119.25 37.8\">\n\t<g>\n\t\t<g>\n\t\t\t<path fill=\"#ffffff\" d=\"M23.4,6.93h-8.1v24.57h-7.2V6.93H0V0h23.4v6.93Z\" \/>\n\t\t\t<path fill=\"#ffffff\" d=\"M45,24.57v6.93h-18.45V0h7.2v24.57h11.25Z\" \/>\n\t\t\t<path fill=\"#ffffff\"\n\t\t\t\td=\"M90.9,15.75c0,8.91-6.61,15.75-15.3,15.75h-12.6V0h12.6c8.68,0,15.3,6.84,15.3,15.75ZM83.97,15.75c0-5.4-3.42-8.82-8.37-8.82h-5.4v17.64h5.4c4.95,0,8.37-3.42,8.37-8.82Z\" \/>\n\t\t\t<path fill=\"#ffffff\"\n\t\t\t\td=\"M105.57,21.15h-3.42v10.35h-7.2V0h12.6c5.98,0,10.8,4.81,10.8,10.8,0,3.87-2.34,7.38-5.81,9.13l6.71,11.56h-7.74l-5.94-10.35ZM102.15,14.85h5.4c1.98,0,3.6-1.75,3.6-4.05s-1.62-4.05-3.6-4.05h-5.4v8.1Z\" \/>\n\t\t<\/g>\n\t\t<path\n\t\t\tfill=\"#0173ec\"\n\t\t\td=\"M53.97,37.8h-5.4l1.8-13.27h7.2l-3.6,13.27ZM49.02,12.55c0-2.34,1.93-4.27,4.27-4.27s4.27,1.94,4.27,4.27-1.93,4.27-4.27,4.27-4.27-1.94-4.27-4.27Z\"\n\t\t \/>\n\t<\/g>\n<\/svg>\n\t<\/div>\n\t<div class=\"tldr-wrap\">\n\t\t\n\n<p class=\"wp-block-paragraph\">Eseguire <a href=\"https:\/\/www.dreamhost.com\/it\/hosting\/vps\/docker\/\">Docker su un VPS<\/a> ti offre app auto-ospitate e portatili, dandoti al tempo stesso il controllo diretto sul server e sulla configurazione del deploy. Aggiungendo Portainer, metti un&#8217;interfaccia utente web davanti a Docker, cos\u00ec non devi vivere nel terminale.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Portainer non indica un minimo di RAM. Un VPS da 4 GB pu\u00f2 andare bene per un piccolo stack, ma dimensionalo in base ai requisiti combinati del sistema operativo, del demone Docker e di ogni container che prevedi di eseguire. Portainer stesso gira come container leggero: sono le tue app, non l&#8217;interfaccia, a decidere quanta RAM ti serve. Portainer Community Edition \u00e8 gratuito e open source e, una volta preparati Docker e il firewall, l&#8217;installazione vera e propria si riduce alla creazione di un volume e a un comando docker run.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Due insidie da conoscere prima di iniziare: Portainer attende solo cinque minuti la creazione del primo account amministratore, e Docker per impostazione predefinita pubblica le porte scavalcando UFW. Questa guida le affronta entrambe in ordine: l&#8217;installazione, il firewall, il dimensionamento, i backup e dove Portainer si rende indispensabile dal secondo giorno.<\/p>\n\n\n\t<\/div>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Hai mai sentito parlare di <em>Dockerception<\/em>?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beh, tieniti forte al cappello. Stiamo per addentrarci nella tana del Bianconiglio.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Portainer, l&#8217;interfaccia web che stai per installare su Docker, <em>\u00e8 a sua volta un container Docker<\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c8 uno strumento che funziona sulla stessa cosa che gestisce. Lo avvii con una riga di docker run, e la prima cosa che fa \u00e8 tornare indietro attraverso un piccolo buco nell&#8217;host (un file socket) e chiedere al demone Docker di mostrargli ogni container presente sulla macchina, incluso se stesso. Da quella scheda del browser gestisci tutti gli altri tuoi container Docker.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>L&#8217;interfaccia che stai guardando compare nel suo stesso elenco di container.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Su un VPS dove gi\u00e0 paghi per la box e sei gi\u00e0 a tuo agio con SSH, Portainer si inserisce perfettamente sopra Docker senza modificare il funzionamento di ci\u00f2 che c&#8217;\u00e8 sotto.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Quello<\/em> \u00e8 il valore.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una box da 4 GB pu\u00f2 essere un punto di partenza per Docker e Portainer, ma sono le applicazioni che aggiungi a determinare se quella capacit\u00e0 basta. Pensa all&#8217;automazione domestica, all&#8217;archivio fotografico di famiglia, all&#8217;assistente IA e alla newsletter che minacci di lanciare da tempo, su un server di tua propriet\u00e0.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ecco come farlo funzionare, proteggerlo e iniziare a vederne il valore.<\/p>\n\n\n\n<h2 id=\"h-what-is-portainer-exactly\" class=\"wp-block-heading\">Cos&#8217;\u00e8 Esattamente Portainer?<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1600\" height=\"829\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/01-Portainer-Architecture_1x.webp\" alt=\"Architettura di Portainer 1x\" class=\"wp-image-82009 lazyload\" data-srcset=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/01-Portainer-Architecture_1x.webp 1600w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/01-Portainer-Architecture_1x-300x155.webp 300w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/01-Portainer-Architecture_1x-1024x531.webp 1024w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/01-Portainer-Architecture_1x-768x398.webp 768w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/01-Portainer-Architecture_1x-1536x796.webp 1536w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/01-Portainer-Architecture_1x-600x311.webp 600w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/01-Portainer-Architecture_1x-1200x622.webp 1200w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/01-Portainer-Architecture_1x-730x378.webp 730w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/01-Portainer-Architecture_1x-1460x756.webp 1460w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/01-Portainer-Architecture_1x-784x406.webp 784w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/01-Portainer-Architecture_1x-1568x812.webp 1568w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/01-Portainer-Architecture_1x-877x454.webp 877w\" data-sizes=\"(max-width: 1600px) 100vw, 1600px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1600px; --smush-placeholder-aspect-ratio: 1600\/829;\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Portainer \u00e8 una UI web che funziona come un container Docker e gestisce gli altri tuoi container tramite il socket Docker.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c8 essenzialmente un frontend basato su browser (una GUI per Docker) per gli stessi comandi Docker che altrimenti digiteresti a mano, oltre alla gestione degli stack, all&#8217;accesso basato sui ruoli (se passi a Business Edition) e a una vista dashboard di CPU e memoria.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La connessione al socket \u00e8 ci\u00f2 che lo fa funzionare. Il bind appare come <code><strong>-v \/var\/run\/docker.sock:\/var\/run\/docker.sock<\/strong><\/code> nel comando di installazione, e quella singola riga fa tutto il lavoro pesante. Senza di essa, Portainer \u00e8 una UI per un host Docker vuoto. Con essa, Portainer \u00e8 il telecomando dell&#8217;host Docker.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una cosa da tenere a mente: qualsiasi processo che pu\u00f2 raggiungere <strong><code>\/var\/run\/docker.sock<\/code><\/strong> pu\u00f2 controllare il demone Docker, e la <a target=\"_blank\" href=\"https:\/\/docs.docker.com\/engine\/security\/\">documentazione sulla sicurezza di Docker<\/a> \u00e8 chiara: solo gli utenti fidati dovrebbero poterlo fare, perch\u00e9 un container avviato tramite il demone pu\u00f2 montare l&#8217;intero filesystem dell&#8217;host e modificarlo senza restrizioni. Questa \u00e8 una <em>funzionalit\u00e0<\/em> quando \u00e8 Portainer a chiederlo e un <em>problema<\/em> quando \u00e8 un container che hai avviato la settimana scorsa dimenticando di avergli dato accesso al socket.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tratta il bind del socket come una capacit\u00e0 privilegiata, e verifica ogni altro container che ne richiede uno.<\/p>\n\n\n\n<div class=\"article-newsletter article-newsletter--gradient\">\n\n\n<h2>Get Content Delivered Straight to Your Inbox<\/h2><p>Subscribe now to receive all the latest updates, delivered directly to your inbox.<\/p><form class=\"nwsl-form\" id=\"newsletter_block_\" novalidate><div class=\"messages\"><\/div><div class=\"form-group\"><label for=\"input_newsletter_block_\"><input type=\"email\"name=\"email\"id=\"input_newsletter_block_\"placeholder=\"Enter your email address\"novalidatedisabled=\"disabled\"\/><\/label><button type=\"submit\"class=\"btn btn--brand\"disabled=\"disabled\"><span>Sign Me Up!<\/span><svg width=\"21\" height=\"14\" viewBox=\"0 0 21 14\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n<path d=\"M13.8523 0.42524L12.9323 1.34521C12.7095 1.56801 12.7132 1.9304 12.9404 2.14865L16.7241 5.7823H0.5625C0.251859 5.7823 0 6.03416 0 6.3448V7.6573C0 7.96794 0.251859 8.2198 0.5625 8.2198H16.7241L12.9405 11.8535C12.7132 12.0717 12.7095 12.4341 12.9323 12.6569L13.8523 13.5769C14.072 13.7965 14.4281 13.7965 14.6478 13.5769L20.8259 7.39879C21.0456 7.17913 21.0456 6.82298 20.8259 6.60327L14.6477 0.42524C14.4281 0.205584 14.0719 0.205584 13.8523 0.42524Z\" fill=\"white\"\/>\n<\/svg>\n<\/button><\/div><\/form><\/div>\n\n\n<h2 id=\"h-do-you-need-portainer-if-you-already-have-docker\" class=\"wp-block-heading\">Hai Bisogno Di Portainer Se Hai Gi\u00e0 Docker?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">No. <a target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/blog\/what-is-docker\/\">Docker<\/a> funziona bene dal terminale, e molte persone gestiscono un paio di container per anni senza mai installare un&#8217;interfaccia utente sopra.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vuoi Portainer se:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Gestirai pi\u00f9 di due o tre container Docker in diverse app.<\/li>\n\n\n\n<li>Preferisci cliccare su &#8220;riavvia&#8221; piuttosto che riscrivere un comando Compose alle 11 di sera.&nbsp;<\/li>\n\n\n\n<li>Stai condividendo l&#8217;accesso con qualcuno che non vive in un terminale.&nbsp;<\/li>\n\n\n\n<li>Vuoi distribuire aggiornamenti di stack da un repo Git senza scrivere uno script di deploy.&nbsp;<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Salta Portainer se:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Gestisci uno o due container che cambiano raramente.&nbsp;<\/li>\n\n\n\n<li>Sei gi\u00e0 a tuo agio con Docker Compose e sei felice di continuare a usarlo.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Docker \u00e8 ormai cos\u00ec diffuso che questa non \u00e8 una decisione di nicchia. Nello <a target=\"_blank\" href=\"https:\/\/stackoverflow.co\/company\/press\/archive\/stack-overflow-2025-developer-survey\/\">Stack Overflow Developer Survey 2025<\/a>, il 71% degli intervistati ha dichiarato di usare Docker, il risultato pi\u00f9 alto tra le tecnologie di sviluppo cloud e di infrastruttura, dopo un balzo di 17 punti percentuali rispetto al 2024. Il progetto Portainer ha pi\u00f9 di <a target=\"_blank\" href=\"https:\/\/github.com\/portainer\/portainer\">38.000 stelle su GitHub<\/a> ad agosto 2026.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esistono altre opzioni. <a href=\"https:\/\/www.dreamhost.com\/it\/hosting\/vps\/dokploy\/\">Dokploy<\/a>, per esempio, tende di pi\u00f9 verso una PaaS self-hosted completa, gestendo per te app, database e SSL. Portainer resta pi\u00f9 vicino al Docker puro: stessi file Compose, stesse immagini, solo con un&#8217;interfaccia sopra.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se vivi in tmux e gestisci una sola app, chiudi questa scheda. <em>Va tutto bene.<\/em> Se gestisci quattro app auto-ospitate e hai cercato su Google &#8220;Com&#8217;\u00e8 che si vedono i log di Docker?&#8221; due volte questo mese, continua a leggere.<\/p>\n\n\n\n<h2 id=\"h-how-big-a-vps-do-you-need-to-run-docker-and-portainer\" class=\"wp-block-heading\">Quanto Grande Deve Essere Un VPS Per Eseguire Docker e Portainer?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Portainer non indica un minimo di RAM. Un <a target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/blog\/beginners-guide-vps\/\">VPS<\/a> da 4 GB pu\u00f2 andare bene per un piccolo stack, ma dimensionalo in base ai requisiti combinati del sistema operativo, del demone Docker e di ogni container che prevedi di eseguire.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La <a target=\"_blank\" href=\"https:\/\/docs.portainer.io\/start\/requirements-and-prerequisites\">pagina dei requisiti<\/a> di Portainer dice sorprendentemente poco sulla RAM: il Server \u00e8 distribuito come container leggero e le indicazioni sulle prestazioni riportate nella documentazione riguardano lo storage (ne parliamo pi\u00f9 sotto). Il vero calcolo della RAM sono i tuoi carichi di lavoro: metti in conto il sistema operativo, il demone Docker e ogni container che prevedi di eseguire. Metti in conto anche il disco per i log: il driver di log json-file predefinito di Docker non effettua alcuna rotazione dei log, quindi i log di un container chiacchierone possono occupare una quantit\u00e0 significativa di disco nel tempo. La <a target=\"_blank\" href=\"https:\/\/docs.docker.com\/engine\/logging\/configure\/\">documentazione sul logging di Docker<\/a> consiglia invece il driver local. Una volta installato Docker (passaggio 2 pi\u00f9 sotto), crea la directory di configurazione di Docker e imposta il driver di log local, poi riavvia Docker: esegui <strong><code>sudo install -d -m 0755 \/etc\/docker<\/code><\/strong>, poi <strong><code>printf '%s\\n' '{ \"log-driver\": \"local\" }' | sudo tee \/etc\/docker\/daemon.json &gt; \/dev\/null<\/code><\/strong>, poi <strong><code>sudo systemctl restart docker<\/code><\/strong>. Fallo prima di distribuire app che restano in esecuzione a lungo: il driver local ruota i log per impostazione predefinita, e la modifica si applica solo ai container creati dopo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ecco come si applica a carichi di lavoro reali:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1089\" height=\"1445\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/08\/vps-size-and-workload-docker-portainer-dreamops-a195c957dc63964ff3f33f0a.webp\" alt=\"Tabella che mostra il dimensionamento del VPS per Docker e Portainer: un singolo piccolo stack di app con Ghost, n8n, Postgres e un reverse proxy sta su DreamHost Stack 4 con 4 GB di RAM; i piani pi\u00f9 grandi si dimensionano in base ai requisiti documentati dei carichi di lavoro\" class=\"wp-image-87229 lazyload\" data-srcset=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/08\/vps-size-and-workload-docker-portainer-dreamops-a195c957dc63964ff3f33f0a.webp 1089w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/08\/vps-size-and-workload-docker-portainer-dreamops-a195c957dc63964ff3f33f0a-226x300.webp 226w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/08\/vps-size-and-workload-docker-portainer-dreamops-a195c957dc63964ff3f33f0a-772x1024.webp 772w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/08\/vps-size-and-workload-docker-portainer-dreamops-a195c957dc63964ff3f33f0a-768x1019.webp 768w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/08\/vps-size-and-workload-docker-portainer-dreamops-a195c957dc63964ff3f33f0a-600x796.webp 600w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/08\/vps-size-and-workload-docker-portainer-dreamops-a195c957dc63964ff3f33f0a-730x969.webp 730w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/08\/vps-size-and-workload-docker-portainer-dreamops-a195c957dc63964ff3f33f0a-784x1040.webp 784w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/08\/vps-size-and-workload-docker-portainer-dreamops-a195c957dc63964ff3f33f0a-877x1164.webp 877w\" data-sizes=\"(max-width: 1089px) 100vw, 1089px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1089px; --smush-placeholder-aspect-ratio: 1089\/1445;\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Il foglio di calcolo \u00e8 una semplice addizione: cerca il requisito di RAM documentato per ogni app che prevedi di eseguire, aggiungi il sistema operativo e il demone Docker, poi lascia un margine per i picchi di utilizzo. Portainer stesso non indica un minimo di RAM, quindi sono le app, non l&#8217;interfaccia, a riempire la box.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Da DreamHost, il nostro <a href=\"https:\/\/www.dreamhost.com\/it\/hosting\/vps\/\" target=\"_blank\">VPS Hosting<\/a> \u00e8 disponibile in quattro piani Stack basati sulla RAM (Stack 4, 8, 16 e 32). Il piano base Stack 4 (2 vCPU, 4 GB di RAM, 75 GB di SSD NVMe, accesso root completo) \u00e8 la scelta naturale per un piccolo host Docker. Con la fatturazione mensile costa $8,99\/mese per i primi 3 mesi e si rinnova automaticamente a $15,99\/mese in seguito (ad agosto 2026; l&#8217;intero periodo pi\u00f9 le tasse viene addebitato al checkout; i prezzi aggiornati sono sempre sulla <a href=\"https:\/\/www.dreamhost.com\/it\/hosting\/vps\/docker\/\">pagina VPS Docker + Portainer<\/a>).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se sei indeciso se il <a href=\"https:\/\/www.dreamhost.com\/blog\/self-hosting\/\" target=\"_blank\">self-hosting<\/a> valga il tempo, Stack 4 \u00e8 la dimensione da cui partire: abbastanza grande per scoprirlo, abbastanza piccola da non pagare un margine che non userai. Se il tuo foglio di calcolo lo supera, puoi passare a un piano superiore e il tuo ambiente si sposta con te, ma tieni presente che al momento non \u00e8 possibile tornare a uno Stack pi\u00f9 piccolo, quindi inizia in piccolo di proposito.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Una nota sullo storage:<\/strong> il volume dati di Portainer contiene il suo database e la sua configurazione, pi\u00f9 un clone di qualsiasi repository Git da cui distribuisci stack; la documentazione di Portainer avverte che repository grandi o multipli possono occupare molto spazio su disco. Le indicazioni sulle prestazioni della documentazione riguardano lo storage, non la memoria: prestazioni a livello di SSD (\u22483,5 MB\/s, 30.000 IOPS o pi\u00f9, latenza di scrittura inferiore a 10 ms) sono ci\u00f2 che definisce ideale. Stack 4 include 75 GB di storage SSD NVMe.<\/p>\n\n\n\n<h2 id=\"h-how-do-you-install-docker-and-portainer-on-a-vps\" class=\"wp-block-heading\">Come Installare Docker e Portainer su un VPS?<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1600\" height=\"1392\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/03-Protainer.io-new-installer_1x.webp\" alt=\"Modulo di configurazione iniziale di Portainer.io per la creazione dell'account amministratore con nome utente\" class=\"wp-image-82012 lazyload\" data-srcset=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/03-Protainer.io-new-installer_1x.webp 1600w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/03-Protainer.io-new-installer_1x-300x261.webp 300w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/03-Protainer.io-new-installer_1x-1024x891.webp 1024w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/03-Protainer.io-new-installer_1x-768x668.webp 768w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/03-Protainer.io-new-installer_1x-1536x1336.webp 1536w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/03-Protainer.io-new-installer_1x-600x522.webp 600w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/03-Protainer.io-new-installer_1x-1200x1044.webp 1200w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/03-Protainer.io-new-installer_1x-730x635.webp 730w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/03-Protainer.io-new-installer_1x-1460x1270.webp 1460w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/03-Protainer.io-new-installer_1x-784x682.webp 784w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/03-Protainer.io-new-installer_1x-1568x1364.webp 1568w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/03-Protainer.io-new-installer_1x-877x763.webp 877w\" data-sizes=\"(max-width: 1600px) 100vw, 1600px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1600px; --smush-placeholder-aspect-ratio: 1600\/1392;\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Servono sette passaggi. I tempi di download e installazione dipendono dal tuo VPS e dalla connessione di rete. I comandi dei passaggi da 2 a 6 sono scritti per Ubuntu e possono essere incollati in ordine su un server pulito; l&#8217;unico punto in cui un comando richiede un valore che conosci solo tu (il tuo indirizzo IP, nel passaggio 4) \u00e8 segnalato nel passaggio stesso. (Vuoi saltare tutto l&#8217;elenco? La libreria di app di DreamHost VPS Hosting include un&#8217;<a href=\"https:\/\/www.dreamhost.com\/it\/hosting\/vps\/docker\/\">immagine Docker + Portainer<\/a> con entrambi preconfigurati.)<\/p>\n\n\n\n<h3 id=\"h-1-pick-a-linux-distribution\" class=\"wp-block-heading\">1. Scegli una distribuzione Linux<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Questa guida usa Ubuntu 24.04 LTS. Docker Engine supporta Ubuntu 22.04, 24.04 e 26.04 LTS (ad agosto 2026). <a href=\"https:\/\/www.dreamhost.com\/it\/hosting\/vps\/ubuntu\/\">Ubuntu<\/a> \u00e8 uno dei sistemi operativi preinstallati disponibili su DreamHost VPS Hosting.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Anche Debian e le distribuzioni della famiglia RHEL come AlmaLinux funzionano, ma hanno le proprie procedure di installazione nella documentazione di Docker, e i comandi qui sotto non si applicano cos\u00ec come sono. Un&#8217;ulteriore complicazione per la famiglia RHEL: la documentazione di installazione di Portainer presuppone che SELinux sia disabilitato, e indica di passare <strong><code>--privileged<\/code><\/strong> a Docker quando distribuisci Portainer se ti serve SELinux attivo. Se questa frase non ti ha detto nulla, usa Ubuntu.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Non sei sicuro di quale versione di Ubuntu stai utilizzando? Scopri <a target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/blog\/check-ubuntu-version\/\">cinque modi per verificarlo<\/a>.<\/p>\n\n\n\n<h3 id=\"h-2-install-docker-from-the-official-repository\" class=\"wp-block-heading\">2. Installa Docker dal repository ufficiale<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Non eseguire <strong><code>apt install docker.io<\/code><\/strong>, e non installare Docker nemmeno tramite snap: la <a target=\"_blank\" href=\"https:\/\/docs.docker.com\/engine\/install\/ubuntu\/\">documentazione ufficiale di installazione di Docker<\/a> elenca <strong>docker.io<\/strong> tra i pacchetti non ufficiali da disinstallare prima di installare Docker Engine, e la documentazione di installazione di Portainer avverte che il pacchetto snap pu\u00f2 causare problemi di compatibilit\u00e0.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Per prima cosa, elimina eventuali pacchetti in conflitto. Questo \u00e8 il comando di rimozione dell&#8217;attuale documentazione di installazione di Docker, e su un server pulito di solito non trova nulla da rimuovere: la documentazione segnala che apt potrebbe indicare che nessuno di questi pacchetti \u00e8 installato:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-compose-v2 docker-doc docker-buildx podman-docker containerd runc | cut -f1)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Poi aggiungi la chiave GPG di Docker (ogni riga qui sotto \u00e8 un comando a s\u00e9):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update\nsudo apt install ca-certificates curl\nsudo install -m 0755 -d \/etc\/apt\/keyrings\nsudo curl -fsSL https:\/\/download.docker.com\/linux\/ubuntu\/gpg -o \/etc\/apt\/keyrings\/docker.asc\nsudo chmod a+r \/etc\/apt\/keyrings\/docker.asc<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Quindi aggiungi il repository apt di Docker. Questo scrive la definizione del repository in <strong><code>\/etc\/apt\/sources.list.d\/docker.sources<\/code><\/strong>, il file usato dalla documentazione di installazione di Docker, con la tua versione di Ubuntu e l&#8217;architettura della CPU compilate automaticamente:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo tee \/etc\/apt\/sources.list.d\/docker.sources &gt; \/dev\/null &lt;&lt;EOF\nTypes: deb\nURIs: https:\/\/download.docker.com\/linux\/ubuntu\nSuites: $(. \/etc\/os-release &amp;&amp; echo \"$VERSION_CODENAME\")\nComponents: stable\nArchitectures: $(dpkg --print-architecture)\nSigned-By: \/etc\/apt\/keyrings\/docker.asc\nEOF\nsudo apt update<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Infine, installa Docker Engine e il plugin Compose in un colpo solo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin<\/code><\/pre>\n\n\n\n<h3 id=\"h-3-verify-docker-is-running\" class=\"wp-block-heading\">3. Verifica che Docker sia in esecuzione<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Esegui <strong><code>sudo docker run hello-world<\/code><\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se non ricevi il messaggio &#8220;Hello from Docker!&#8221;, correggi il demone prima di sovrapporre Portainer.<\/p>\n\n\n\n<h3 id=\"h-4-wire-ufw-into-docker-before-you-start-portainer\" class=\"wp-block-heading\">4. Integra UFW con Docker prima di avviare Portainer<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ecco la parte che la maggior parte delle guide mette alla fine, quando ormai \u00e8 troppo tardi: quando Docker pubblica una porta, il traffico verso di essa viene deviato prima di raggiungere le catene filtrate da UFW, quindi una porta pubblicata \u00e8 raggiungibile da internet pubblico anche quando UFW dice che \u00e8 negata. (La spiegazione completa \u00e8 <a href=\"#h-how-do-you-stop-docker-from-bypassing-your-firewall\">pi\u00f9 sotto<\/a>.) Nel momento in cui avvii Portainer, la sua porta 9443 sar\u00e0 pubblica, proprio durante la finestra di cinque minuti in cui chiunque la raggiunga per primo pu\u00f2 creare l&#8217;account amministratore. Quindi sistema il firewall <em>prima<\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se UFW non \u00e8 gi\u00e0 attivo, consenti SSH e abilitalo. (Se il tuo SSH usa una porta personalizzata, consenti quella porta invece della 22, altrimenti questo \u00e8 il passaggio in cui ti chiudi fuori.)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw allow 22\/tcp\nsudo ufw enable<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Poi installa <a target=\"_blank\" href=\"https:\/\/github.com\/chaifeng\/ufw-docker\">chaifeng\/ufw-docker<\/a>, uno strumento di terze parti che aggiunge le regole necessarie a <strong>\/etc\/ufw\/after.rules<\/strong> in modo che il traffico verso le porte pubblicate da Docker venga filtrato tramite la catena <strong>DOCKER-USER<\/strong>. I comandi qui sotto fissano la release <strong>251123<\/strong> del progetto (novembre 2025) invece di scaricare dal branch master in continua evoluzione, e usano curl, che hai installato nel passaggio 2:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo curl -fsSL -o \/usr\/local\/bin\/ufw-docker \\\n  https:\/\/github.com\/chaifeng\/ufw-docker\/raw\/251123\/ufw-docker\nsudo chmod +x \/usr\/local\/bin\/ufw-docker\nsudo ufw-docker install\nsudo ufw reload<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dopo il ricaricamento, le porte pubblicate dei container vengono filtrate tramite UFW. Se la tua policy per il traffico instradato nega le connessioni in entrata e nessuna regola esistente consente la porta, le connessioni pubbliche restano bloccate finch\u00e9 non le consenti esplicitamente. (Il progetto ufw-docker segnala che, se le regole non hanno effetto dopo un riavvio di UFW, un riavvio del server risolve il problema.)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ora pre-autorizza il <em>tuo<\/em> accesso all&#8217;interfaccia di Portainer. Sostituisci <strong><code>YOUR_HOME_IP<\/code><\/strong> con l&#8217;IP pubblico da cui navigherai:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw route allow proto tcp from YOUR_HOME_IP to any port 9443<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Con questa regola attiva prima dell&#8217;avvio di Portainer, il traffico IPv4 verso l&#8217;interfaccia \u00e8 consentito dal tuo IP e da nessun altro, anche durante la finestra di creazione dell&#8217;amministratore iniziale. La regola cos\u00ec come \u00e8 scritta copre solo IPv4. La documentazione di ufw-docker dice che lo strumento supporta anche le reti IPv6 e aggiorna <strong>\/etc\/ufw\/after6.rules<\/strong> quando necessario, ma non fidarti sulla parola: se il tuo VPS risponde su un indirizzo IPv6 pubblico, esegui anche via IPv6 il test dall&#8217;esterno descritto nella sezione sul firewall prima di fidarti. Il compromesso: la maggior parte delle connessioni domestiche cambia IP di tanto in tanto, quindi potresti dover aggiornare la regola in seguito. Se la cosa ti d\u00e0 fastidio, la soluzione pi\u00f9 pulita a lungo termine \u00e8 una VPN davanti all&#8217;interfaccia (trattata nella sezione sulla messa in sicurezza).<\/p>\n\n\n\n<h3 id=\"h-5-create-a-persistent-volume-for-portainer-s-data\" class=\"wp-block-heading\">5. Crea un volume persistente per i dati di Portainer<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">In seguito, esegui <strong><code>sudo docker volume create portainer_data<\/code><\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mantenere il database di Portainer su un volume Docker (non all&#8217;interno del container) significa che un aggiornamento di Portainer non canceller\u00e0 la tua configurazione.<\/p>\n\n\n\n<h3 id=\"h-6-run-portainer-community-edition\" class=\"wp-block-heading\">6. Esegui Portainer Community Edition<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Questo \u00e8 il comando della <a target=\"_blank\" href=\"https:\/\/docs.portainer.io\/start\/install-ce\/server\/docker\/linux\">documentazione di installazione di Portainer per Linux<\/a>, meno un flag: la versione ufficiale pubblica anche la porta 8000, un tunnel TCP necessario solo se in seguito colleghi ambienti remoti tramite Edge Agent. Un&#8217;installazione su un singolo host non ne ha bisogno, quindi la omettiamo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo docker run -d \\\n  -p 9443:9443 \\\n  --name portainer \\\n  --restart=always \\\n  -v \/var\/run\/docker.sock:\/var\/run\/docker.sock \\\n  -v portainer_data:\/data \\\n  portainer\/portainer-ce:lts<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Analizziamolo riga per riga:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><code>-d<\/code> <\/strong>lo esegue in modalit\u00e0 distaccata.<\/li>\n\n\n\n<li><strong><code>-p 9443:9443<\/code><\/strong> \u00e8 l&#8217;interfaccia web di Portainer su HTTPS, la porta che hai autorizzato per il tuo IP nel passaggio 4.<\/li>\n\n\n\n<li><strong><code>--restart=always<\/code><\/strong> fa ripartire Portainer dopo un riavvio.<\/li>\n\n\n\n<li><strong><code>-v<\/code><\/strong>: questi flag sono il bind del socket e il volume persistente del passaggio 5.<\/li>\n\n\n\n<li><strong><code>:lts<\/code><\/strong> ti vincola al canale di rilascio Long Term Support di Portainer, il tag usato dalla documentazione di installazione di Portainer.<\/li>\n<\/ul>\n\n\n\n<h3 id=\"h-7-open-the-ui-and-create-your-admin-account\" class=\"wp-block-heading\">7. Apri l&#8217;interfaccia e crea il tuo account amministratore<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Indirizza il tuo browser su<strong> https:\/\/YOUR_VPS_IP:9443<\/strong> (dall&#8217;indirizzo IP che hai autorizzato nel passaggio 4).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ignora l&#8217;avviso del certificato autofirmato. Arriverai alla schermata &#8220;crea l&#8217;utente amministratore iniziale&#8221;. Scegli un nome utente che non sia admin, imposta una password forte e salvala in un posto sicuro. E&#8230; sei dentro!<\/p>\n\n\n\n<h2 id=\"h-why-did-portainer-just-time-out-on-me\" class=\"wp-block-heading\">Perch\u00e9 Portainer \u00c8 Appena Andato In Timeout?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Perch\u00e9 Portainer attende esattamente cinque minuti affinch\u00e9 qualcuno lo rivendichi alla prima installazione. Se nessuno lo fa, chiude la porta.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Testo esatto dalla <a target=\"_blank\" href=\"https:\/\/docs.portainer.io\/faqs\/installing\/i-just-installed-portainer-but-i-cant-access-the-ui-how-do-i-fix-this\">FAQ di Portainer<\/a>:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8220;<em>Come misura di sicurezza, quando Portainer viene installato per la prima volta, attender\u00e0 5 minuti per la creazione di un utente amministratore (parte della configurazione iniziale). Se un utente non viene creato entro quei 5 minuti, il Server Portainer smetter\u00e0 di ascoltare le richieste.<\/em>&#8220;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Traduzione: se hai impiegato il passaggio 6 a prepararti un panino, ora la tua installazione si rifiuta di parlarti, e non hai fatto nulla di sbagliato.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La soluzione \u00e8 semplice. Esegui <strong><code>sudo docker restart portainer<\/code><\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Questo fa ripartire il container, ti d\u00e0 un&#8217;altra finestra di cinque minuti e ti porta alla schermata di creazione dell&#8217;amministratore. Ripeti quanto necessario. Benvenuto nel <a target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/blog\/self-hosting\/\">self-hosting<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se stai scriptando l&#8217;installazione per una flotta (Ansible, Terraform, una pipeline di deploy), Portainer accetta un flag <strong><code>--admin-password-file<\/code><\/strong> che crea l&#8217;utente admin da un file al primo avvio del container, cos\u00ec non c&#8217;\u00e8 nessuna schermata di creazione dell&#8217;amministratore contro cui correre. La <a href=\"https:\/\/docs.portainer.io\/advanced\/cli\" target=\"_blank\">documentazione sulla configurazione CLI<\/a> di Portainer copre la sintassi. Per un&#8217;installazione VPS una tantum, il trucco del riavvio va bene.<\/p>\n\n\n\n<h2 id=\"h-how-do-you-stop-docker-from-bypassing-your-firewall\" class=\"wp-block-heading\">Come Impedire a Docker Di Bypassare Il Tuo Firewall?<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1600\" height=\"1229\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/04-Docker-Firewall.webp\" alt=\"Confronto del firewall Docker: senza la regola DOCKER-USER l'accesso ai container non \u00e8 limitato\" class=\"wp-image-82013 lazyload\" data-srcset=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/04-Docker-Firewall.webp 1600w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/04-Docker-Firewall-300x230.webp 300w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/04-Docker-Firewall-1024x787.webp 1024w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/04-Docker-Firewall-768x590.webp 768w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/04-Docker-Firewall-1536x1180.webp 1536w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/04-Docker-Firewall-600x461.webp 600w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/04-Docker-Firewall-1200x922.webp 1200w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/04-Docker-Firewall-730x561.webp 730w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/04-Docker-Firewall-1460x1121.webp 1460w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/04-Docker-Firewall-784x602.webp 784w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/04-Docker-Firewall-1568x1204.webp 1568w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/04-Docker-Firewall-877x674.webp 877w\" data-sizes=\"(max-width: 1600px) 100vw, 1600px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1600px; --smush-placeholder-aspect-ratio: 1600\/1229;\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">L&#8217;hai gi\u00e0 fatto, nel passaggio 4. Ecco cosa \u00e8 successo davvero, come aprire le porte di proposito e come dimostrare che ha funzionato.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il problema: quando pubblichi la porta di un container con <strong><code>-p 80:80<\/code><\/strong>, quella porta \u00e8 raggiungibile da internet pubblico anche se <strong>ufw status <\/strong>indica che la porta 80 \u00e8 negata. Secondo la <a target=\"_blank\" href=\"https:\/\/docs.docker.com\/engine\/network\/packet-filtering-firewalls\/\">documentazione sul filtraggio dei pacchetti di Docker<\/a>, &#8220;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 utilizzate da ufw.&#8221;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">UFW non \u00e8 rotto. \u00c8 solo nel corridoio sbagliato.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La soluzione indicata da Docker stesso \u00e8 la <a target=\"_blank\" href=\"https:\/\/docs.docker.com\/engine\/network\/firewall-iptables\/\">catena iptables <strong>DOCKER-USER<\/strong><\/a>, una catena che Docker crea appositamente per le regole definite dall&#8217;utente, elaborata prima delle regole delle catene di Docker. Lo script <strong>ufw-docker<\/strong> che hai installato nel passaggio 4 integra UFW in quella catena aggiungendo un blocco di regole (tra i marcatori <strong># BEGIN UFW AND DOCKER<\/strong> e <strong># END UFW AND DOCKER<\/strong>) a <strong>\/etc\/ufw\/after.rules<\/strong>, cos\u00ec viene caricato insieme al resto della tua configurazione UFW.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Per aprire di proposito al pubblico la porta di un container<\/strong>, per esempio un&#8217;app web sulla porta 80 del container, usa una regola route:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw route allow proto tcp from any to any port 80<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Una trappola segnalata dalla documentazione di ufw-docker: la regola prende la porta del <em>container<\/em>, non quella dell&#8217;host. Se hai pubblicato con <strong><code>-p 8080:80<\/code><\/strong>, la regola corretta \u00e8 quella qui sopra (porta 80), non la porta 8080.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Per verificare dall&#8217;esterno<\/strong>, fai un test da una rete che non \u00e8 nella tua lista di autorizzazione; un hotspot del telefono va benissimo. Questo comando dovrebbe andare in timeout invece di restituire la pagina di login di Portainer:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl -k --max-time 5 https:\/\/YOUR_VPS_IP:9443\n\n# For IPv6, enclose the address in square brackets:\ncurl -k --max-time 5 'https:\/\/[YOUR_VPS_IPV6]:9443'<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Esegui lo stesso comando dall&#8217;IP che hai autorizzato nel passaggio 4 e dovresti ricevere dell&#8217;HTML. UFW che dice &#8220;denied&#8221; \u00e8 un&#8217;affermazione; un timeout da una rete estranea \u00e8 una prova.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Per annullare tutto<\/strong>, esegui <strong><code>sudo ufw-docker uninstall<\/code><\/strong>, che secondo la documentazione del progetto ripristina la tua configurazione UFW ed elimina i file che ha installato, poi <strong><code>sudo ufw reload<\/code><\/strong>. Puoi anche rimuovere a mano il blocco tra i marcatori <strong># BEGIN UFW AND DOCKER<\/strong> e <strong># END UFW AND DOCKER<\/strong> in <strong>\/etc\/ufw\/after.rules<\/strong> e ricaricare UFW.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Questa coglie in fallo ingegneri esperti tanto sulle macchine personali quanto sui server di produzione: UFW dice una cosa, internet pubblico un&#8217;altra, e la verit\u00e0 \u00e8 in iptables. Se preferisci che Portainer non abbia mai una porta pubblica, <a target=\"_blank\" href=\"https:\/\/www.portainer.io\/how-to\/how-to-secure-your-portainer-installation\">proteggilo con un tunnel VPN<\/a> come WireGuard.<\/p>\n\n\n\n<h2 id=\"h-what-should-you-lock-down-right-after-the-first-login\" class=\"wp-block-heading\">Cosa Dovresti Mettere In Sicurezza Subito Dopo Il Primo Accesso?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Sei dentro. Cinque cose da fare prima di chiudere quella scheda del browser; le prime quattro vengono direttamente dalla <a target=\"_blank\" href=\"https:\/\/www.portainer.io\/how-to\/how-to-secure-your-portainer-installation\">guida alla sicurezza<\/a> di Portainer:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Attiva Force HTTPS only.<\/strong> L&#8217;installazione di questa guida pubblica solo la porta 9443, quindi nessuna porta HTTP \u00e8 esposta fin dall&#8217;inizio. Attivare l&#8217;opzione <em>Force HTTPS only<\/em> in <em>Settings \u2192 SSL Certificate<\/em> rende definitiva questa scelta: secondo la <a target=\"_blank\" href=\"https:\/\/docs.portainer.io\/admin\/settings\/general\">documentazione sulle impostazioni di Portainer<\/a>, disabilita completamente l&#8217;ascolto sulla vecchia porta HTTP (9000), quindi una futura ridistribuzione che aggiunga <strong><code>-p 9000:9000<\/code><\/strong> non pu\u00f2 riaprire un percorso non cifrato.<\/li>\n\n\n\n<li><strong>Sostituisci il certificato autofirmato.<\/strong> Carica un certificato che hai generato, oppure metti davanti a Portainer un reverse proxy NGINX con un certificato Let&#8217;s Encrypt. Dopo il primo giorno, cliccare ogni volta sull&#8217;avviso del browser diventer\u00e0 un&#8217;abitudine di cui ti pentirai.<\/li>\n\n\n\n<li><strong>Utilizza un vero nome utente amministratore.<\/strong> Usare il nome utente admin predefinito lascia a un attaccante una credenziale in meno da indovinare. Scegli qualcosa di specifico per te.<\/li>\n\n\n\n<li><strong>Limita l&#8217;UI a una VPN.<\/strong> Eseguire Portainer dietro una VPN WireGuard \u00e8 il modello indicato dalla guida alla sicurezza di Portainer. Una 9443 limitata al tuo IP di origine (passaggio 4) va bene. Una 9443 raggiungibile solo su una rete privata \u00e8 meglio.<\/li>\n\n\n\n<li><strong>Verifica il bind del socket Docker.<\/strong> Qualsiasi cosa con accesso a <strong><code>\/var\/run\/docker.sock<\/code><\/strong> controlla il demone Docker e, attraverso di esso, l&#8217;host. <em>Non<\/em> montare con leggerezza il socket in altri container. Ogni bind aggiuntivo \u00e8 un nuovo percorso verso l&#8217;host. Se un container afferma di aver bisogno del socket, chiedi perch\u00e9, e valuta un proxy del socket se la risposta \u00e8 &#8220;per il monitoraggio&#8221;.<\/li>\n<\/ul>\n\n\n\n<h2 id=\"h-how-do-you-actually-use-portainer-day-to-day\" class=\"wp-block-heading\">Come Utilizzi Effettivamente Portainer Nella Vita Quotidiana?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Il vantaggio dell&#8217;installazione di Portainer \u00e8 il giorno in cui smetti di usare SSH per riavviare un container che non funziona bene, e inizi a cliccare su un pulsante. Il vantaggio maggiore \u00e8 la gestione degli stack.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Uno stack di Portainer \u00e8 un&#8217;app multi-container definita da un file Docker Compose. Portainer pu\u00f2 distribuire le configurazioni Docker Compose supportate come stack attraverso quattro percorsi elencati nella <a target=\"_blank\" href=\"https:\/\/docs.portainer.io\/user\/docker\/stacks\/add\">documentazione ufficiale degli stack<\/a>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Incolla il Compose nell&#8217;editor web<\/li>\n\n\n\n<li>Carica un file Compose<\/li>\n\n\n\n<li>Indirizza Portainer a un repository Git<\/li>\n\n\n\n<li>Distribuisci da un template personalizzato<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"2560\" height=\"1181\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/05-How-Do-You-Actually-Use-Portainer-Day-to-Day_-scaled.gif\" alt=\"Dashboard di Portainer.io che mostra i dettagli dello Stack con la tabella dei container, i log e le statistiche\" class=\"wp-image-82014 lazyload\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 2560px; --smush-placeholder-aspect-ratio: 2560\/1181;\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Il percorso Git \u00e8 quello che conta. Indirizzi Portainer a un repository pubblico o autenticato e a un percorso per <strong>docker-compose.yml<\/strong>, poi attivi gli aggiornamenti GitOps. Portainer controlla il repository a un intervallo di fetch che imposti tu, oppure ti fornisce un URL webhook da aggiungere al tuo host Git (attivato, per esempio, da una GitHub Action). Quando il file Compose cambia a monte, Portainer lo scarica e lo ridistribuisce automaticamente. E s\u00ec, funziona in Community Edition: nella pagina della documentazione sugli stack, solo l&#8217;opzione dei volumi con percorso relativo riporta il contrassegno Business Edition.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Questa \u00e8 la versione self-hosted del &#8220;deploy on push&#8221; senza pagare una PaaS per il privilegio.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Anche le piccole vittorie quotidiane si accumulano. Pensa ai log in un pannello invece di seguirli dalla riga di comando, ai riavvii con un solo clic, alla ricostruzione di uno stack da un pulsante e ai grafici delle risorse che puoi scorrere in tre secondi invece di eseguire Docker stats.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se in seguito aggiungi host remoti tramite Edge Agent, la porta 8000 torna in gioco: le <a href=\"#h-can-portainer-manage-multiple-docker-hosts\">FAQ pi\u00f9 sotto<\/a> trattano la ridistribuzione e la regola del firewall.<\/p>\n\n\n\n<h2 id=\"h-how-do-you-back-up-portainer-and-your-containers\" class=\"wp-block-heading\">Come Eseguire Il Backup Di Portainer e Dei Tuoi Container?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Un volume \u00e8 persistenza, non un backup. Il volume <strong>portainer_data<\/strong> del passaggio 5 sopravvive agli aggiornamenti del container, ma risiede sullo stesso disco di tutto il resto: un vero piano di backup ha quindi tre parti, e tutte e tre lasciano il VPS.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>1. La configurazione di Portainer.<\/strong> Nell&#8217;interfaccia, vai su <em>Settings \u2192 Back up Portainer<\/em>, mantieni l&#8217;opzione predefinita <em>Download backup file<\/em> e fai clic su <em>Download backup<\/em>. Secondo la <a target=\"_blank\" href=\"https:\/\/docs.portainer.io\/admin\/settings\/general\">documentazione sulle impostazioni di Portainer<\/a>, questo scarica un tar.gz di tutto ci\u00f2 che Portainer memorizza sul suo volume \/data, facoltativamente cifrato con password, e quell&#8217;archivio \u00e8 tutto ci\u00f2 che ti serve per ripristinare Portainer. La documentazione \u00e8 altrettanto chiara sull&#8217;ambito: esegue il backup <em>solo<\/em> della configurazione di Portainer, non dei container, degli stack o dei volumi che hai distribuito. (I backup pianificati su S3 esistono, ma solo in Business Edition; con CE, metti un promemoria ricorrente nel tuo calendario.)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>2. I dati delle tue applicazioni.<\/strong> La <a target=\"_blank\" href=\"https:\/\/docs.docker.com\/engine\/storage\/volumes\/\">documentazione sui volumi di Docker<\/a> definisce i volumi con nome il metodo preferito per rendere persistenti i dati dei container, e pi\u00f9 facili da sottoporre a backup o migrare rispetto ai bind mount. Un mount in sola lettura impedisce di scrivere solo al container di <em>backup<\/em>: l&#8217;app stessa pu\u00f2 ancora scrivere sul volume durante l&#8217;archiviazione e consegnarti una copia incoerente. Quindi ferma prima il container dell&#8217;app (<strong><code>sudo docker stop myapp<\/code><\/strong>), oppure usa il meccanismo di backup supportato dall&#8217;app stessa. Poi monta il volume in sola lettura in un container usa e getta, crea l&#8217;archivio con tar e riavvia l&#8217;app al termine (sostituisci con i tuoi nomi):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo docker run --rm \\\n  -v myapp_data:\/source:ro \\\n  -v \"$PWD\":\/backup \\\n  alpine tar czf \/backup\/myapp_data.tgz -C \/source .<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Per i database, preferisci lo strumento di dump del database stesso (pg_dump, mysqldump) alla copia dei file di dati attivi, cos\u00ec non archivi un file a met\u00e0 scrittura. Poi sposta gli archivi fuori dalla macchina con una pianificazione: rsync o scp verso un&#8217;altra macchina, oppure invio a un object storage. Un backup che risiede sul disco di cui fa il backup sparisce insieme a quel disco.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>3. I tuoi file Compose e i segreti.<\/strong> Se distribuisci gli stack da Git, i file Compose sono gi\u00e0 fuori dall&#8217;host. Ci\u00f2 che Git <em>non<\/em> contiene \u00e8 tutto quello che non hai mai committato: file .env, chiavi API e password fornite al momento del deploy. Anche le directory montate in bind restano fuori dal backup dei volumi descritto sopra. Fai un inventario separato di questi elementi ed eseguine il backup cifrato.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Poi testa il ripristino, prima di averne bisogno.<\/strong> La documentazione di Portainer dice che il ripristino della configurazione funziona solo su un&#8217;istanza nuova: distribuisci un nuovo container Portainer con un volume dati vuoto (va bene un VPS usa e getta o il tuo laptop), scegli <em>Restore Portainer from backup<\/em> durante la configurazione iniziale e verifica di poter accedere con le vecchie credenziali e di vedere le definizioni dei tuoi stack. Questa prova copre solo la parte 1, la configurazione di Portainer. Le parti 2 e 3 richiedono un test a s\u00e9, app per app: ripristina un archivio in un volume nuovo, avvia l&#8217;app su di esso e controlla che i dati ci siano davvero. Un backup non testato \u00e8 una speranza con un nome di file.<\/p>\n\n\n\n<h2 id=\"h-what-does-portainer-cost-and-when-does-free-stop-being-free\" class=\"wp-block-heading\">Quanto Costa Portainer? (E Quando Il Gratuito Smette Di Essere Gratuito?)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Portainer \u00e8 doppiamente gratuito. Community Edition \u00e8 gratuito e <a target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/blog\/open-source-vs-proprietary\/\">open source<\/a> (licenza zlib), senza bisogno di chiave di licenza. E Portainer Business Edition \u00e8 <a target=\"_blank\" href=\"https:\/\/www.portainer.io\/take-3\">gratuito per sempre fino a 3 nodi<\/a>: tutte le funzionalit\u00e0 Business, nessun limite di tempo, nessuna carta di credito. Ti registri per ottenere una chiave di licenza gratuita invece di pagare.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><strong>Edizione<\/strong><\/th><th><strong>Costo<\/strong><\/th><th><strong>Nodi<\/strong><\/th><th><strong>Ideale per<\/strong><\/th><\/tr><\/thead><tbody><tr><td>Community Edition<\/td><td>Gratuita, open source<\/td><td>Nessuna licenza per nodo<\/td><td>Progetti personali, homelab, self-hoster con un singolo VPS<\/td><\/tr><tr><td>Business Edition \u2014 3 nodi gratis<\/td><td>Gratuita, senza limiti di tempo<\/td><td>Fino a 3<\/td><td>Piccoli homelab che vogliono funzionalit\u00e0 Business come RBAC<\/td><\/tr><tr><td>Home &amp; Student<\/td><td>$155\/anno<\/td><td>Fino a 15<\/td><td>Homelab pi\u00f9 grandi e studenti; esclusivamente non commerciale<\/td><\/tr><tr><td>Business Starter<\/td><td>Da $105\/mese<\/td><td>5, 10 o 15<\/td><td>Piccoli team che gestiscono infrastrutture reali (supporto della community)<\/td><\/tr><tr><td>Business Scale<\/td><td>Da $209\/mese<\/td><td>Da 5 a 35<\/td><td>Team in crescita che necessitano di supporto 9&#215;5<\/td><\/tr><tr><td>Enterprise<\/td><td>Su preventivo<\/td><td>Personalizzato<\/td><td>Esigenze di conformit\u00e0 e di supporto prioritario<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">I prezzi provengono dalla <a target=\"_blank\" href=\"https:\/\/www.portainer.io\/pricing\">pagina dei prezzi di Portainer<\/a> ad agosto 2026; Starter e Scale richiedono un impegno annuale.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Quindi quale dovresti scegliere? Per un singolo VPS con un solo amministratore, <strong>Community Edition<\/strong>: \u00e8 open source, non richiede registrazione e fa tutto ci\u00f2 che \u00e8 descritto in questa guida, deploy da Git inclusi. Se vuoi il controllo degli accessi basato sui ruoli (RBAC) per un secondo utente, o gestisci gi\u00e0 due o tre macchine, scegli invece il livello Business gratuito a 3 nodi: \u00e8 lo stesso software con le funzionalit\u00e0 Business sbloccate, gratuito finch\u00e9 resti a tre nodi o meno. I piani a pagamento hanno senso solo quando gestisci un numero reale di nodi in un team, e controlla la voce sul supporto prima di dare per scontato che a pagamento significhi assistito: ad agosto 2026, la pagina dei prezzi di Portainer indica supporto della community sul piano Starter, supporto 9&#215;5 entro il giorno lavorativo successivo dal piano Scale in su e supporto prioritario su Enterprise.<\/p>\n\n\n\n<h2 id=\"h-should-you-add-portainer-or-skip-it\" class=\"wp-block-heading\">Dovresti Aggiungere Portainer o Saltarlo?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ecco la risposta onesta in due frasi:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2705 Se prevedi di condividere questo server, fare il deploy da Git, o eseguire pi\u00f9 di tre container da qui a un anno, installa Portainer mentre l&#8217;host \u00e8 nuovo e le tue abitudini si stanno ancora formando intorno ad esso.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u274c Se stai eseguendo un&#8217;unica app tranquilla e ti trovi bene nel terminale, non ti mancher\u00e0 l&#8217;interfaccia utente che non hai installato.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La vera domanda non \u00e8 Portainer contro nessun Portainer. \u00c8 se il self-hosting sia la scelta giusta per te, e hai risposto a questa domanda quando hai aperto questa scheda.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un VPS da 4 GB, Docker e Portainer CE bastano per iniziare a fare self-hosting sul serio: scegli le tue app, somma i loro requisiti documentati e lascia che sia il foglio di calcolo, non la lista dei desideri, a decidere quando la box deve crescere.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Non \u00e8 un brutto affare.<\/p>\n\n\n\n<h2 id=\"h-frequently-asked-questions-about-docker-and-portainer\" class=\"wp-block-heading\">Domande Frequenti Su Docker E Portainer<\/h2>\n\n\n\n<h3 id=\"h-can-you-run-docker-on-a-vps\" class=\"wp-block-heading\">Si pu\u00f2 eseguire Docker su un VPS?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">S\u00ec. Un VPS con accesso root \u00e8 uno dei posti pi\u00f9 flessibili in cui eseguire Docker: installi Docker Engine sul sistema operativo Linux del server e ogni app gira nel proprio container. La distinzione su cui molti inciampano \u00e8 che il VPS \u00e8 il server virtuale che noleggi, mentre Docker \u00e8 il software che esegui su di esso per isolare le applicazioni in container. Va bene qualsiasi VPS con accesso root e RAM sufficiente per i tuoi container; <a target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/it\/hosting\/vps\/docker\/\">DreamHost VPS Hosting<\/a> offre persino un&#8217;immagine Docker + Portainer preinstallata.<\/p>\n\n\n\n<h3 id=\"h-what-is-portainer-used-for\" class=\"wp-block-heading\">Per cosa si utilizza Portainer?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Portainer \u00e8 utilizzato per gestire i container Docker, Docker Swarm e Kubernetes tramite un&#8217;interfaccia web. Funziona a sua volta come container Docker, si collega al socket Docker dell&#8217;host e ti offre una vista e un controllo tramite browser su tutti gli altri container dell&#8217;host: avviare e fermare i container, distribuire stack multi-container, visualizzare i log e gestire l&#8217;accesso degli utenti senza bisogno di SSH.<\/p>\n\n\n\n<h3 id=\"h-do-i-need-portainer-if-i-have-docker\" class=\"wp-block-heading\">Ho bisogno di Portainer se ho Docker?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">No, non hai bisogno di Portainer per usare Docker. Docker funziona completamente dal terminale, e molti self-hoster non installano mai un&#8217;interfaccia utente sopra.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Portainer dimostra il suo valore quando devi gestire pi\u00f9 di due o tre container, condividere l&#8217;accesso con qualcuno che non vive in un terminale, o distribuire aggiornamenti di stack da un repository Git. Saltalo se gestisci uno o due container stabili e ti trovi a tuo agio con Docker Compose.<\/p>\n\n\n\n<h3 id=\"h-what-port-does-portainer-run-on\" class=\"wp-block-heading\">Su quale porta funziona Portainer?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Portainer serve la sua interfaccia web in HTTPS sulla porta 9443 per impostazione predefinita. Il comando di installazione ufficiale nella <a href=\"https:\/\/docs.portainer.io\/start\/install-ce\/server\/docker\/linux\" target=\"_blank\">documentazione di installazione di Portainer per Linux<\/a> pubblica anche la porta 8000, un tunnel TCP usato solo dagli Edge Agent quando in seguito colleghi host Docker remoti: \u00e8 facoltativa, ed \u00e8 per questo che l&#8217;installazione su un singolo host di questa guida elimina completamente il flag <strong><code>-p 8000:8000<\/code><\/strong>.<\/p>\n\n\n\n<h3 id=\"h-how-much-ram-does-portainer-need\" class=\"wp-block-heading\">Quanta RAM richiede Portainer?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Gli attuali requisiti di sistema di Portainer non indicano un minimo di RAM: il Server gira come container leggero e le indicazioni sulle prestazioni riportate nella documentazione riguardano il disco, non la memoria. Dimensiona la RAM sommando i requisiti documentati del sistema operativo, del demone Docker e di ogni app che eseguirai, poi lascia un margine per i picchi.<br><br>Da DreamHost, il nostro piano <a target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/it\/hosting\/vps\/\">VPS Hosting<\/a> di base, Stack 4, include 4 GB di RAM: un punto di partenza per un piccolo stack di container per progetti secondari come <a target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/blog\/ghost-self-hosted\/\">Ghost<\/a> o <a target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/blog\/n8n-self-hosted\/\">n8n<\/a>. Che 4 GB bastino o meno dipende dalle app che esegui davvero; se i calcoli lo superano, puoi passare a un piano Stack pi\u00f9 grande.<\/p>\n\n\n\n<h3 id=\"h-is-portainer-free\" class=\"wp-block-heading\">Portainer \u00e8 gratuito?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">S\u00ec, e doppiamente. Portainer Community Edition \u00e8 gratuito e <a target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/blog\/open-source-vs-proprietary\/\">open-source<\/a>, senza bisogno di chiave di licenza. Anche Portainer Business Edition (che aggiunge funzionalit\u00e0 come il controllo degli accessi basato sui ruoli) \u00e8 gratuito fino a 3 nodi, con tutte le funzionalit\u00e0 e senza limiti di tempo; ti registri per ottenere una chiave di licenza gratuita invece di pagare. Oltre tre nodi, i prezzi Business partono da $105\/mese con il piano Starter secondo la <a target=\"_blank\" href=\"https:\/\/www.portainer.io\/pricing\">pagina dei prezzi di Portainer<\/a> (ad agosto 2026), e una licenza Home &amp; Student da $155\/anno copre gli homelab non commerciali fino a 15 nodi.<\/p>\n\n\n\n<h3 id=\"h-can-portainer-manage-multiple-docker-hosts\" class=\"wp-block-heading\">Portainer pu\u00f2 gestire pi\u00f9 host Docker?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">S\u00ec, Portainer gestisce pi\u00f9 host Docker tramite Agent ed Edge Agent. L&#8217;Agent standard resta in ascolto sulla porta 9001 di ogni host remoto; gli Edge Agent invece si collegano in uscita alla porta tunnel 8000 del Server Portainer e, secondo la documentazione sui requisiti di Portainer, non hanno bisogno di porte in entrata aperte. Per chi fa self-hosting su un singolo VPS, nulla di tutto questo \u00e8 necessario, ed \u00e8 per questo che l&#8217;installazione di questa guida elimina il flag della porta 8000 incluso nel comando ufficiale di Portainer. Il giorno in cui colleghi un ambiente remoto tramite un Edge Agent, ridistribuisci Portainer aggiungendo <strong><code>-p 8000:8000<\/code><\/strong>, poi consenti la porta 8000 del container attraverso UFW dall&#8217;IP pubblico in uscita di ciascun Edge Agent, sostituendo qui <strong><code>EDGE_AGENT_IP<\/code><\/strong>: <strong><code>sudo ufw route allow proto tcp from EDGE_AGENT_IP to any port 8000<\/code><\/strong>.<\/p>\n\n\n\n<h3 id=\"h-does-docker-bypass-ufw-on-a-vps\" class=\"wp-block-heading\">Docker elude UFW su un VPS?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">S\u00ec, Docker elude UFW per impostazione predefinita perch\u00e9 Docker gestisce il traffico dei container a livello NAT di iptables, che si trova davanti alle catene INPUT e OUTPUT di UFW.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Secondo la <a target=\"_blank\" href=\"https:\/\/docs.docker.com\/engine\/network\/packet-filtering-firewalls\/\">documentazione sul filtraggio dei pacchetti di Docker<\/a>, &#8220;i pacchetti vengono deviati prima di raggiungere le catene INPUT e OUTPUT utilizzate da ufw.&#8221; La soluzione \u00e8 aggiungere le tue regole alla <a target=\"_blank\" href=\"https:\/\/docs.docker.com\/engine\/network\/firewall-iptables\/\">catena iptables <strong>DOCKER-USER<\/strong><\/a>, e uno strumento della community per integrarvi UFW \u00e8 <a target=\"_blank\" href=\"https:\/\/github.com\/chaifeng\/ufw-docker\">chaifeng\/ufw-docker<\/a>, installato prima ancora che Portainer si avvii, nel passaggio 4 di questa guida.<\/p>\n\n\n\n\n\n\n\n\n\n<div class=\"article-cta-shared article-cta-small article-cta--product\">\n\t<div class=\"tr-img-wrap-outer jsLoading\"><img decoding=\"async\" class=\"js-img-lazy \" src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/themes\/blog2018\/assets\/img\/lazy-loading-transparent.webp\" data-srcset=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/cta_image_a-877x522.webp 1x, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/cta_image_a.webp 2x\"  \/><\/div>\n\n\t<a href='https:\/\/www.dreamhost.com\/hosting\/vps\/' class='link-top' target='_blank' rel='noopener noreferrer'>\n\t\t<span>VPS<\/span>\n\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 384 512\" width=\"15\"><path d=\"M342.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L274.7 256 105.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z\"\/><\/svg>\n\t<\/a>\n\n\t<div class=\"content-btm\">\n\t\t<h2 class=\"h2--md\">\n\t\t\tOwn Your Entire Stack. Apps, AI, Databases, and More.\n\t\t<\/h2>\n\t\t<p class=\"p--md\">\n\t\t\tKeep every credential and conversation on a server you control, with NVMe speed and unmetered bandwidth built in.\n\t\t<\/p>\n\n\t\t        <a\n            href=\"https:\/\/www.dreamhost.com\/hosting\/vps\/\"\n                        class=\"btn btn--white-outline btn--sm btn--round\"\n                                    target=\"_blank\"\n            rel=\"noopener noreferrer\"\n            >\n                            Explore VPS Hosting Plans                    <\/a>\n\n\t<\/div>\n<\/div>\n\n\n\n<script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"Si pu\u00f2 eseguire Docker su un VPS?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"S\u00ec. Un VPS con accesso root \u00e8 uno dei posti pi\u00f9 flessibili in cui eseguire Docker: installi Docker Engine sul sistema operativo Linux del server e ogni app gira nel proprio container. Il VPS \u00e8 il server virtuale che noleggi; Docker \u00e8 il software che esegui su di esso per isolare le applicazioni in container.\"}},{\"@type\":\"Question\",\"name\":\"Per cosa si utilizza Portainer?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Portainer \u00e8 utilizzato per gestire i container Docker, Docker Swarm e Kubernetes tramite un'interfaccia web. Funziona a sua volta come container Docker, si collega al socket Docker dell'host e ti offre una vista e un controllo tramite browser su tutti gli altri container dell'host: avviare e fermare i container, distribuire stack multi-container, visualizzare i log e gestire l'accesso degli utenti senza bisogno di SSH.\"}},{\"@type\":\"Question\",\"name\":\"Ho bisogno di Portainer se ho Docker?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No, non hai bisogno di Portainer per usare Docker. Docker funziona completamente dal terminale, e molti self-hoster non installano mai un'interfaccia utente sopra.\"}},{\"@type\":\"Question\",\"name\":\"Su quale porta funziona Portainer?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Portainer serve la sua interfaccia web in HTTPS sulla porta 9443 per impostazione predefinita. Il comando di installazione ufficiale pubblica anche la porta 8000, un tunnel TCP usato solo dagli Edge Agent quando in seguito colleghi host Docker remoti: \u00e8 facoltativa in un'installazione su un singolo host.\"}},{\"@type\":\"Question\",\"name\":\"Quanta RAM richiede Portainer?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Gli attuali requisiti di sistema di Portainer non indicano un minimo di RAM: il Server gira come container leggero e le indicazioni sulle prestazioni riportate nella documentazione riguardano il disco, non la memoria. Dimensiona la RAM sommando i requisiti documentati del sistema operativo, del demone Docker e di ogni app che eseguirai, poi lascia un margine per i picchi.\"}},{\"@type\":\"Question\",\"name\":\"Portainer \u00e8 gratuito?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"S\u00ec, e doppiamente. Portainer Community Edition \u00e8 gratuito e open source, senza bisogno di chiave di licenza. Anche Portainer Business Edition \u00e8 gratuito fino a 3 nodi, con tutte le funzionalit\u00e0 e senza limiti di tempo; oltre tre nodi, i prezzi Business partono da $105\/mese con il piano Starter, ad agosto 2026.\"}},{\"@type\":\"Question\",\"name\":\"Portainer pu\u00f2 gestire pi\u00f9 host Docker?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"S\u00ec, Portainer gestisce pi\u00f9 host Docker tramite Agent ed Edge Agent. L'Agent standard resta in ascolto sulla porta 9001 di ogni host remoto; gli Edge Agent invece si collegano in uscita alla porta tunnel 8000 del Server Portainer e non hanno bisogno di porte in entrata aperte.\"}},{\"@type\":\"Question\",\"name\":\"Docker elude UFW su un VPS?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"S\u00ec, Docker elude UFW per impostazione predefinita perch\u00e9 Docker gestisce il traffico dei container a livello NAT di iptables, che si trova davanti alle catene INPUT e OUTPUT di UFW. La soluzione \u00e8 aggiungere regole alla catena iptables DOCKER-USER; uno strumento della community per integrarvi UFW \u00e8 chaifeng\/ufw-docker.\"}}]},{\"@type\":\"HowTo\",\"name\":\"Come installare Docker e Portainer su un VPS\",\"description\":\"Installa Docker e Portainer Community Edition su un VPS Ubuntu in sette passaggi, dalla scelta di una distribuzione Linux alla creazione dell'account amministratore. I tempi di download e installazione dipendono dal tuo VPS e dalla connessione di rete.\",\"step\":[{\"@type\":\"HowToStep\",\"position\":1,\"name\":\"Scegli una distribuzione Linux\",\"text\":\"Questa guida usa Ubuntu 24.04 LTS. Docker Engine supporta Ubuntu 22.04, 24.04 e 26.04 LTS (ad agosto 2026). Debian e le distribuzioni della famiglia RHEL come AlmaLinux hanno le proprie procedure di installazione nella documentazione di Docker, e la documentazione di installazione di Portainer presuppone che SELinux sia disabilitato sui sistemi della famiglia RHEL.\"},{\"@type\":\"HowToStep\",\"position\":2,\"name\":\"Installa Docker dal repository ufficiale\",\"text\":\"Non eseguire apt install docker.io: la documentazione di installazione di Docker elenca docker.io tra i pacchetti non ufficiali da disinstallare prima. Rimuovi i pacchetti in conflitto, aggiungi la chiave GPG e il repository apt di Docker secondo la documentazione ufficiale di installazione di Docker, poi esegui: sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin\"},{\"@type\":\"HowToStep\",\"position\":3,\"name\":\"Verifica che Docker sia in esecuzione\",\"text\":\"Esegui sudo docker run hello-world. Se non ricevi il messaggio \\\"Hello from Docker!\\\", correggi il demone prima di sovrapporre Portainer.\"},{\"@type\":\"HowToStep\",\"position\":4,\"name\":\"Integra UFW con Docker prima di avviare Portainer\",\"text\":\"Le porte pubblicate da Docker eludono UFW per impostazione predefinita. Abilita UFW (consentendo prima SSH), installa lo script chaifeng\/ufw-docker, esegui ufw-docker install, ricarica UFW e aggiungi una regola di autorizzazione per IP di origine per la porta 9443 del container (sudo ufw route allow proto tcp from YOUR_HOME_IP to any port 9443) prima che Portainer si avvii, cos\u00ec l'interfaccia non \u00e8 mai raggiungibile pubblicamente durante la finestra di cinque minuti per la creazione dell'amministratore iniziale.\"},{\"@type\":\"HowToStep\",\"position\":5,\"name\":\"Crea un volume persistente per i dati di Portainer\",\"text\":\"Esegui sudo docker volume create portainer_data. Mantenere il database di Portainer su un volume Docker (non all'interno del container) significa che un aggiornamento di Portainer non canceller\u00e0 la tua configurazione.\"},{\"@type\":\"HowToStep\",\"position\":6,\"name\":\"Esegui Portainer Community Edition\",\"text\":\"Usa il comando di installazione ufficiale della documentazione di installazione Linux di Portainer, senza la porta facoltativa del tunnel Edge Agent: sudo docker run -d -p 9443:9443 --name portainer --restart=always -v \/var\/run\/docker.sock:\/var\/run\/docker.sock -v portainer_data:\/data portainer\/portainer-ce:lts. Il flag -d lo esegue in modalit\u00e0 distaccata, -p 9443:9443 \u00e8 l'interfaccia web di Portainer su HTTPS, --restart=always fa ripartire Portainer dopo un riavvio, i flag -v sono il bind del socket e il volume persistente del passaggio 5, e il tag :lts \u00e8 il canale di rilascio Long Term Support di Portainer.\"},{\"@type\":\"HowToStep\",\"position\":7,\"name\":\"Apri l'interfaccia di Portainer e crea l'account amministratore\",\"text\":\"Indirizza il browser su https:\/\/YOUR_VPS_IP:9443 dall'indirizzo IP che hai autorizzato nel passaggio 4. Ignora l'avviso del certificato autofirmato. 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.\"}]}]}<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Esegui Docker su un VPS con l&#8217;interfaccia web di Portainer in primo piano. Passaggi di installazione, dimensionamento, sicurezza e gli ostacoli che ogni guida all&#8217;installazione tralascia. Circa 30 minuti dall&#8217;inizio alla fine.<\/p>\n","protected":false},"author":2,"featured_media":82008,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_yoast_wpseo_opengraph-title":"","_yoast_wpseo_opengraph-description":"","_yoast_wpseo_twitter-title":"","_yoast_wpseo_twitter-description":"","toc_headlines":"[[\"h-what-is-portainer-exactly\",\"Cos'\u00e8 Esattamente Portainer?\"],[\"h-do-you-need-portainer-if-you-already-have-docker\",\"Hai Bisogno Di Portainer Se Hai Gi\u00e0 Docker?\"],[\"h-how-big-a-vps-do-you-need-to-run-docker-and-portainer\",\"Quanto Grande Deve Essere Un VPS Per Eseguire Docker e Portainer?\"],[\"h-how-do-you-install-docker-and-portainer-on-a-vps\",\"Come Installare Docker e Portainer su un VPS?\"],[\"h-why-did-portainer-just-time-out-on-me\",\"Perch\u00e9 Portainer \u00c8 Appena Andato In Timeout?\"],[\"h-how-do-you-stop-docker-from-bypassing-your-firewall\",\"Come Fermi Docker Dal Bypassare Il Tuo Firewall?\"],[\"h-what-should-you-lock-down-right-after-the-first-login\",\"Cosa Dovresti Bloccare Subito Dopo Il Primo Accesso?\"],[\"h-how-do-you-actually-use-portainer-day-to-day\",\"Come Utilizzi Effettivamente Portainer Nella Vita Quotidiana?\"],[\"h-what-does-portainer-cost-and-when-does-free-stop-being-free\",\"Quanto Costa Portainer? (E Quando Il Gratuito Smette Di Essere Gratuito?)\"],[\"h-should-you-add-portainer-or-skip-it\",\"Dovresti Aggiungere Portainer o Saltarlo?\"],[\"h-frequently-asked-questions-about-docker-and-portainer\",\"Domande Frequenti Su Docker E Portainer\"]]","hide_toc":false,"show_updated_at":"0","footnotes":""},"categories":[15062,15064,15058],"tags":[],"class_list":["post-82082","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-vps-hosting-it","category-web-hosting-it","category-tutorials-it"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Come Eseguire Docker e Portainer su un VPS (Guida 2026) - DreamHost Blog<\/title>\n<meta name=\"description\" content=\"Esegui Docker su un VPS con l&#039;interfaccia web di Portainer davanti. Passaggi di installazione, dimensionamento, sicurezza e le insidie che ogni guida all&#039;installazione salta. Circa 30 minuti dall&#039;inizio alla fine.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dreamhost.com\/blog\/it\/come-eseguire-docker-e-portainer-su-un-vps-guida-2026-it\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Come Eseguire Docker e Portainer su un VPS (Guida 2026) - DreamHost Blog\" \/>\n<meta property=\"og:description\" content=\"Esegui Docker su un VPS con l&#039;interfaccia web di Portainer davanti. Passaggi di installazione, dimensionamento, sicurezza e le insidie che ogni guida all&#039;installazione salta. Circa 30 minuti dall&#039;inizio alla fine.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dreamhost.com\/blog\/it\/come-eseguire-docker-e-portainer-su-un-vps-guida-2026-it\/\" \/>\n<meta property=\"og:site_name\" content=\"DreamHost Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DreamHost\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-06-19T14:30:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-24T22:21:47+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/1460x1095-BLOG-HERO-Run-Docker-and-Portainer-on-a-VPS-2026-Guide_1x.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"1095\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Dallas Kashuba\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@http:\/\/twitter.com\/dallas\" \/>\n<meta name=\"twitter:site\" content=\"@dreamhost\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Dallas Kashuba\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"16 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Come Eseguire Docker e Portainer su un VPS (Guida 2026) - DreamHost Blog","description":"Esegui Docker su un VPS con l'interfaccia web di Portainer davanti. Passaggi di installazione, dimensionamento, sicurezza e le insidie che ogni guida all'installazione salta. Circa 30 minuti dall'inizio alla fine.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dreamhost.com\/blog\/it\/come-eseguire-docker-e-portainer-su-un-vps-guida-2026-it\/","og_locale":"en_US","og_type":"article","og_title":"Come Eseguire Docker e Portainer su un VPS (Guida 2026) - DreamHost Blog","og_description":"Esegui Docker su un VPS con l'interfaccia web di Portainer davanti. Passaggi di installazione, dimensionamento, sicurezza e le insidie che ogni guida all'installazione salta. Circa 30 minuti dall'inizio alla fine.","og_url":"https:\/\/www.dreamhost.com\/blog\/it\/come-eseguire-docker-e-portainer-su-un-vps-guida-2026-it\/","og_site_name":"DreamHost Blog","article_publisher":"https:\/\/www.facebook.com\/DreamHost\/","article_published_time":"2026-06-19T14:30:00+00:00","article_modified_time":"2026-09-24T22:21:47+00:00","og_image":[{"width":1460,"height":1095,"url":"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/1460x1095-BLOG-HERO-Run-Docker-and-Portainer-on-a-VPS-2026-Guide_1x.webp","type":"image\/webp"}],"author":"Dallas Kashuba","twitter_card":"summary_large_image","twitter_creator":"@http:\/\/twitter.com\/dallas","twitter_site":"@dreamhost","twitter_misc":{"Written by":"Dallas Kashuba","Est. reading time":"16 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dreamhost.com\/blog\/it\/come-eseguire-docker-e-portainer-su-un-vps-guida-2026-it\/#article","isPartOf":{"@id":"https:\/\/www.dreamhost.com\/blog\/it\/come-eseguire-docker-e-portainer-su-un-vps-guida-2026-it\/"},"author":{"name":"Dallas Kashuba","@id":"https:\/\/www.dreamhost.com\/blog\/#\/schema\/person\/418697d2a49f38f84e7051458118d483"},"headline":"Come Eseguire Docker e Portainer su un VPS (Guida 2026)","datePublished":"2026-06-19T14:30:00+00:00","dateModified":"2026-09-24T22:21:47+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dreamhost.com\/blog\/it\/come-eseguire-docker-e-portainer-su-un-vps-guida-2026-it\/"},"wordCount":5286,"publisher":{"@id":"https:\/\/www.dreamhost.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.dreamhost.com\/blog\/it\/come-eseguire-docker-e-portainer-su-un-vps-guida-2026-it\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/1460x1095-BLOG-HERO-Run-Docker-and-Portainer-on-a-VPS-2026-Guide_1x.webp","articleSection":["Hosting VPS","Hosting Web","Tutorial"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.dreamhost.com\/blog\/it\/come-eseguire-docker-e-portainer-su-un-vps-guida-2026-it\/","url":"https:\/\/www.dreamhost.com\/blog\/it\/come-eseguire-docker-e-portainer-su-un-vps-guida-2026-it\/","name":"Come Eseguire Docker e Portainer su un VPS (Guida 2026) - DreamHost Blog","isPartOf":{"@id":"https:\/\/www.dreamhost.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dreamhost.com\/blog\/it\/come-eseguire-docker-e-portainer-su-un-vps-guida-2026-it\/#primaryimage"},"image":{"@id":"https:\/\/www.dreamhost.com\/blog\/it\/come-eseguire-docker-e-portainer-su-un-vps-guida-2026-it\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/1460x1095-BLOG-HERO-Run-Docker-and-Portainer-on-a-VPS-2026-Guide_1x.webp","datePublished":"2026-06-19T14:30:00+00:00","dateModified":"2026-09-24T22:21:47+00:00","description":"Esegui Docker su un VPS con l'interfaccia web di Portainer davanti. Passaggi di installazione, dimensionamento, sicurezza e le insidie che ogni guida all'installazione salta. Circa 30 minuti dall'inizio alla fine.","breadcrumb":{"@id":"https:\/\/www.dreamhost.com\/blog\/it\/come-eseguire-docker-e-portainer-su-un-vps-guida-2026-it\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dreamhost.com\/blog\/it\/come-eseguire-docker-e-portainer-su-un-vps-guida-2026-it\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dreamhost.com\/blog\/it\/come-eseguire-docker-e-portainer-su-un-vps-guida-2026-it\/#primaryimage","url":"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/1460x1095-BLOG-HERO-Run-Docker-and-Portainer-on-a-VPS-2026-Guide_1x.webp","contentUrl":"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/1460x1095-BLOG-HERO-Run-Docker-and-Portainer-on-a-VPS-2026-Guide_1x.webp","width":1460,"height":1095,"caption":"How To Run Docker and Portainer on a VPS (2026 Guide)"},{"@type":"BreadcrumbList","@id":"https:\/\/www.dreamhost.com\/blog\/it\/come-eseguire-docker-e-portainer-su-un-vps-guida-2026-it\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/dhblog2.dream.press\/blog\/"},{"@type":"ListItem","position":2,"name":"Come Eseguire Docker e Portainer su un VPS (Guida 2026)"}]},{"@type":"WebSite","@id":"https:\/\/www.dreamhost.com\/blog\/#website","url":"https:\/\/www.dreamhost.com\/blog\/","name":"DreamHost Blog","description":"","publisher":{"@id":"https:\/\/www.dreamhost.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dreamhost.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.dreamhost.com\/blog\/#organization","name":"DreamHost","url":"https:\/\/www.dreamhost.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dreamhost.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/dhblog2.dream.press\/blog\/wp-content\/uploads\/2019\/01\/dh_logo-blue-2.png","contentUrl":"https:\/\/dhblog2.dream.press\/blog\/wp-content\/uploads\/2019\/01\/dh_logo-blue-2.png","width":1200,"height":168,"caption":"DreamHost"},"image":{"@id":"https:\/\/www.dreamhost.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DreamHost\/","https:\/\/x.com\/dreamhost","https:\/\/www.instagram.com\/dreamhost\/","https:\/\/www.linkedin.com\/company\/dreamhost\/","https:\/\/www.youtube.com\/user\/dreamhostusa"]},{"@type":"Person","@id":"https:\/\/www.dreamhost.com\/blog\/#\/schema\/person\/418697d2a49f38f84e7051458118d483","name":"Dallas Kashuba","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/05ab6fb1606be97d16c74efb0fba01b3c11e91501dc5f9661bdfbb5c5b0cd113?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/05ab6fb1606be97d16c74efb0fba01b3c11e91501dc5f9661bdfbb5c5b0cd113?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/05ab6fb1606be97d16c74efb0fba01b3c11e91501dc5f9661bdfbb5c5b0cd113?s=96&d=mm&r=g","caption":"Dallas Kashuba"},"description":"Dallas Kashuba co-founded DreamHost while attending Harvey Mudd College and has spent nearly three decades building infrastructure at scale. Today he serves as an advisor, board member, and investor for various tech startups, with a consistent focus on user privacy, open source, and data portability. When he's not thinking about the Open Web, he's probably making music. Follow Dallas on X.","sameAs":["http:\/\/www.idallas.com\/","https:\/\/x.com\/http:\/\/twitter.com\/dallas"],"url":"https:\/\/www.dreamhost.com\/blog\/author\/dallas\/"}]}},"lang":"it","translations":{"it":82082,"en":82006,"es":82076,"pt":82068,"de":82070,"nl":82080,"fr":82074},"pll_sync_post":{},"_links":{"self":[{"href":"https:\/\/www.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts\/82082","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dreamhost.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dreamhost.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"version-history":[{"count":2,"href":"https:\/\/www.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts\/82082\/revisions"}],"predecessor-version":[{"id":91783,"href":"https:\/\/www.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts\/82082\/revisions\/91783"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dreamhost.com\/blog\/wp-json\/wp\/v2\/media\/82008"}],"wp:attachment":[{"href":"https:\/\/www.dreamhost.com\/blog\/wp-json\/wp\/v2\/media?parent=82082"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dreamhost.com\/blog\/wp-json\/wp\/v2\/categories?post=82082"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dreamhost.com\/blog\/wp-json\/wp\/v2\/tags?post=82082"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}