{"id":7897,"date":"2026-02-12T08:57:53","date_gmt":"2026-02-12T08:57:53","guid":{"rendered":"\/it\/tutorial\/?p=7897"},"modified":"2026-02-13T06:59:34","modified_gmt":"2026-02-13T06:59:34","slug":"come-risolvere-docker-permission-denied","status":"publish","type":"post","link":"\/it\/tutorial\/come-risolvere-docker-permission-denied","title":{"rendered":"Come risolvere l\u2019errore &#8220;Docker permission denied&#8221; su Ubuntu"},"content":{"rendered":"<p>L&rsquo;errore &ldquo;permission denied&rdquo; di Docker si verifica di solito quando <strong>il tuo account utente non dispone dei permessi necessari per accedere al socket del daemon Docker o ai file e alle directory richiesti<\/strong>.<\/p><p>Docker utilizza queste restrizioni per impedire accessi non autorizzati, ma possono interrompere il flusso di lavoro, soprattutto quando configuri ambienti di sviluppo su Ubuntu.<\/p><p>Per risolvere l&rsquo;errore &ldquo;permission denied&rdquo; di Docker, segui queste sei soluzioni collaudate:<\/p><ol class=\"wp-block-list\">\n<li><strong>Modifica l&rsquo;appartenenza ai gruppi utente<\/strong>. Aggiungi il tuo account utente al gruppo <strong>docker<\/strong> per poter eseguire i comandi Docker senza utilizzare sudo.<\/li>\n\n\n\n<li><strong>Modifica la propriet&agrave; di file e directory<\/strong>. Aggiorna la propriet&agrave; dei file di configurazione e dei volumi montati per garantire che il motore Docker possa leggere e scrivere i dati.<\/li>\n\n\n\n<li><strong>Verifica i permessi del socket<\/strong>. Controlla i permessi del socket Unix di Docker per assicurarti che il canale di comunicazione non sia limitato.<\/li>\n\n\n\n<li><strong>Aggiorna i permessi di esecuzione degli script<\/strong>. Assicurati che i comandi nel Dockerfile e gli script <strong>ENTRYPOINT<\/strong> abbiano i permessi di esecuzione per evitare errori all&rsquo;avvio del container.<\/li>\n\n\n\n<li><strong>Configura l&rsquo;accesso all&rsquo;hardware<\/strong>. Consenti ai container di accedere a dispositivi specifici, come dispositivi USB o GPU, per risolvere problemi di permessi legati all&rsquo;hardware.<\/li>\n\n\n\n<li><strong>Riavvia il daemon Docker<\/strong>. Riavvia il servizio Docker e la tua sessione utente per applicare tutte le modifiche a permessi e gruppi.<\/li>\n<\/ol><h2 class=\"wp-block-heading\" id=\"h-prerequisiti\">Prerequisiti<\/h2><p>Prima di correggere l&rsquo;errore &ldquo;permission denied&rdquo; di Docker, assicurati che il tuo sistema Linux soddisfi i requisiti necessari per modificare le impostazioni amministrative:<\/p><ul class=\"wp-block-list\">\n<li><strong>Accesso amministrativo<\/strong>. Ti servono privilegi <strong>sudo<\/strong> o root per modificare i gruppi utente e i permessi dei file.<\/li>\n\n\n\n<li><strong>Verifica dei gruppi utente<\/strong>. Controlla i gruppi a cui appartieni eseguendo il comando <strong>groups $USER<\/strong>.<\/li>\n<\/ul><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"69d230b3b605e\"}' data-wp-interactive=\"core\/image\" class=\"aligncenter size-large is-resized wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"258\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/27\/2026\/02\/terminale-gruppi-utente.png\/public\" alt=\"Output del terminale che mostra le appartenenze ai gruppi dell&rsquo;utente Linux corrente\" class=\"wp-image-7806\" style=\"width:456px;height:auto\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/27\/2026\/02\/terminale-gruppi-utente.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/27\/2026\/02\/terminale-gruppi-utente.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/27\/2026\/02\/terminale-gruppi-utente.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Ingrandisci\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div><ul class=\"wp-block-list\">\n<li><strong>Installazione di Docker<\/strong>. Conferma che <a href=\"\/it\/tutorial\/come-installare-docker-ubuntu\">Docker sia installato<\/a> e in esecuzione eseguendo <strong>docker &ndash;version<\/strong>.<\/li>\n<\/ul><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"69d230b3b6cf0\"}' data-wp-interactive=\"core\/image\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"117\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/27\/2026\/02\/terminale-docker-versione-1.png\/public\" alt=\"Output del terminale che conferma la versione di Docker installata\" class=\"wp-image-7807\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/27\/2026\/02\/terminale-docker-versione-1.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/27\/2026\/02\/terminale-docker-versione-1.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/27\/2026\/02\/terminale-docker-versione-1.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Ingrandisci\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div><p>Sebbene queste istruzioni siano incentrate su Ubuntu, si applicano alla maggior parte delle distribuzioni basate su Debian.<\/p><h2 class=\"wp-block-heading\" id=\"h-1-aggiungi-il-tuo-utente-al-gruppo-docker\">1. Aggiungi il tuo utente al gruppo Docker<\/h2><p>La causa pi&ugrave; comune dell&rsquo;errore &ldquo;permission denied&rdquo; &egrave; che il tuo account utente non fa parte del gruppo <strong>docker<\/strong>.<\/p><p>Per impostazione predefinita, il daemon Docker viene eseguito come servizio di propriet&agrave; dell&rsquo;utente root. Solo gli utenti appartenenti al gruppo <strong>docker<\/strong> possono comunicare con esso senza utilizzare <strong>sudo<\/strong>.<\/p><p>Per risolvere il problema, aggiungi il tuo utente corrente al gruppo <strong>docker<\/strong>:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo usermod -aG docker $USER<\/pre><p>Questo comando aggiorna il tuo account utente aggiungendolo (<strong>-a<\/strong>) al gruppo specificato (<strong>-G<\/strong>). In questo modo, il tuo utente ottiene i permessi per accedere al socket del daemon Docker ed eseguire direttamente i comandi Docker.<\/p><p>Per applicare la nuova appartenenza al gruppo, esci e accedi nuovamente.<\/p><p>Dopo aver effettuato l&rsquo;accesso, verifica che la modifica abbia avuto effetto eseguendo:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">id -nG<\/pre><p>L&rsquo;output dovrebbe includere <strong>docker<\/strong> nell&rsquo;elenco dei gruppi.<\/p><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"69d230b3b7a06\"}' data-wp-interactive=\"core\/image\" class=\"aligncenter size-large is-resized wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"263\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/27\/2026\/02\/terminale-id-ng-docker-evidenziato.png\/public\" alt=\"Output del terminale con l&rsquo;appartenenza al gruppo docker evidenziata\" class=\"wp-image-7808\" style=\"width:404px;height:auto\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/27\/2026\/02\/terminale-id-ng-docker-evidenziato.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/27\/2026\/02\/terminale-id-ng-docker-evidenziato.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/27\/2026\/02\/terminale-id-ng-docker-evidenziato.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Ingrandisci\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div><p>Se desideri verificare subito la modifica senza disconnetterti, esegui:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">newgrp docker<\/pre><p>Questo comando applica il cambio di gruppo solo alla sessione di terminale corrente.<\/p><h2 class=\"wp-block-heading\" id=\"h-2-correggi-i-problemi-di-permessi-di-file-e-directory\">2. Correggi i problemi di permessi di file e directory<\/h2><p>Se aggiungere il tuo utente al gruppo non risolve il problema, permessi errati sui file di configurazione o sui volumi montati potrebbero causare l&rsquo;errore.<\/p><p>Docker necessita di accesso in lettura e scrittura ai file di configurazione, in particolare al file <strong>config.json<\/strong>.<\/p><p>Per prima cosa, verifica i permessi della directory di configurazione Docker locale:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ls -l ~\/.docker\/<\/pre><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"69d230b3b858f\"}' data-wp-interactive=\"core\/image\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"127\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/27\/2026\/02\/terminale-ls-l-docker-root-root-evidenziato.png\/public\" alt=\"Output del terminale che mostra la propriet&agrave; di root dei file di configurazione di Docker\" class=\"wp-image-7809\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/27\/2026\/02\/terminale-ls-l-docker-root-root-evidenziato.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/27\/2026\/02\/terminale-ls-l-docker-root-root-evidenziato.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/27\/2026\/02\/terminale-ls-l-docker-root-root-evidenziato.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Ingrandisci\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div><p>Se l&rsquo;output mostra che i file appartengono a <strong>root<\/strong> invece che al tuo utente, modifica la propriet&agrave; con il comando <strong>chown<\/strong>:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo chown -R \"$USER\":\"$USER\" \"$HOME\/.docker\"<\/pre><p>Questo comando modifica ricorsivamente la propriet&agrave; della directory <strong>.docker<\/strong>, assegnandola al tuo utente corrente.<\/p><p>Poi, risolvi eventuali problemi relativi ai volumi montati. Quando monti una directory dell&rsquo;host in un container, l&rsquo;utente del container deve avere i permessi necessari per leggere o scrivere in quella directory.<\/p><p>Ad esempio:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker run -v ~\/data:\/app\/data ubuntu<\/pre><p>Verifica che la directory dell&rsquo;host <strong>~\/data<\/strong> abbia i permessi corretti. Puoi concedere all&rsquo;utente proprietario (<strong>u<\/strong>) i permessi di lettura e scrittura con:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">chmod u+rw ~\/data<\/pre><p>In questo modo garantisci che l&rsquo;utente proprietario della directory possa gestire correttamente i dati all&rsquo;interno del volume montato.<\/p><h2 class=\"wp-block-heading\" id=\"h-3-verifica-i-permessi-del-socket-docker\">3. Verifica i permessi del socket Docker<\/h2><p>Il daemon Docker comunica tramite un socket Unix situato in <strong>\/var\/run\/docker.sock<\/strong>. Se questo socket ha permessi errati, il client Docker non pu&ograve; inviare comandi al daemon.<\/p><p>Verifica i permessi correnti:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ls -l \/var\/run\/docker.sock<\/pre><p>Dovresti vedere un output simile al seguente:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">srw-rw---- 1 root docker 0 Dec 18 10:00 \/var\/run\/docker.sock<\/pre><p>Questo indica che <strong>root<\/strong> &egrave; proprietario del socket e che il gruppo <strong>docker<\/strong> dispone dei permessi di lettura e scrittura. Se il tuo utente appartiene al gruppo <strong>docker<\/strong>, la configurazione &egrave; corretta.<\/p><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"69d230b3b9208\"}' data-wp-interactive=\"core\/image\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"71\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/27\/2026\/02\/terminale-ls-l-var-run-docker-sock-root-docker-evidenziato.png\/public\" alt=\"Output del terminale che mostra docker.sock di propriet&agrave; di root e del gruppo docker\" class=\"wp-image-7810\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/27\/2026\/02\/terminale-ls-l-var-run-docker-sock-root-docker-evidenziato.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/27\/2026\/02\/terminale-ls-l-var-run-docker-sock-root-docker-evidenziato.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/27\/2026\/02\/terminale-ls-l-var-run-docker-sock-root-docker-evidenziato.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Ingrandisci\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div><p>Se il gruppo non &egrave; docker o i permessi sono diversi, non modificare manualmente i permessi eseguendo <strong>chmod 666 \/var\/run\/docker.sock<\/strong>, soprattutto negli ambienti di produzione.<\/p><p>Questo comando rappresenta un grave rischio per la sicurezza, poich&eacute; concede a tutti gli utenti del sistema accesso al daemon Docker, equivalendo di fatto a un controllo di livello root sull&rsquo;host.<\/p><p>Affidati invece all&rsquo;appartenenza al gruppo <strong>docker<\/strong>. Il daemon imposter&agrave; automaticamente le autorizzazioni corrette del socket all&rsquo;avvio.<\/p><h2 class=\"wp-block-heading\" id=\"h-4-correggi-i-permessi-del-dockerfile-o-dello-script-entrypoint\">4. Correggi i permessi del Dockerfile o dello script ENTRYPOINT<\/h2><p>Un errore &ldquo;permission denied&rdquo; pu&ograve; verificarsi anche all&rsquo;interno di un container quando lo script ENTRYPOINT non dispone dei permessi di esecuzione.<\/p><p>Questo problema &egrave; comune quando si spostano script da un file system non Linux, come Windows, nel contesto di build Docker. In questi casi, il bit di esecuzione pu&ograve; andare perso.<\/p><p>Il container non riesce quindi ad avviarsi perch&eacute; non pu&ograve; eseguire lo script definito nell&rsquo;istruzione <strong>ENTRYPOINT<\/strong> o <strong>CMD<\/strong>.<\/p><p>Per risolvere il problema, aggiungi un&rsquo;istruzione <strong>RUN<\/strong> dopo la riga <strong>COPY<\/strong> nel tuo Dockerfile. In questo modo concedi i permessi di esecuzione allo script:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">RUN chmod +x \/usr\/local\/bin\/entrypoint.sh<\/pre><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"69d230b3ba004\"}' data-wp-interactive=\"core\/image\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"630\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/27\/2026\/02\/terminale-nano-dockerfile-run-chmod-entrypoint-sh-evidenziato.png\/public\" alt=\"Dockerfile aperto in nano con il comando chmod nello script di entrypoint evidenziato\" class=\"wp-image-7811\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/27\/2026\/02\/terminale-nano-dockerfile-run-chmod-entrypoint-sh-evidenziato.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/27\/2026\/02\/terminale-nano-dockerfile-run-chmod-entrypoint-sh-evidenziato.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/27\/2026\/02\/terminale-nano-dockerfile-run-chmod-entrypoint-sh-evidenziato.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Ingrandisci\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div><p>Questo garantisce che lo script rimanga eseguibile, indipendentemente dai permessi sulla macchina host. Ti servir&agrave; spesso questo passaggio quando crei immagini personalizzate che dipendono da script di avvio.<\/p><h2 class=\"wp-block-heading\" id=\"h-5-concedi-ai-container-docker-laccesso-ai-dispositivi\">5. Concedi ai container Docker l&rsquo;accesso ai dispositivi<\/h2><p>Se un container deve interagire con dispositivi hardware, come un&rsquo;unit&agrave; USB, una webcam o una GPU, potresti riscontrare un errore &ldquo;permission denied&rdquo; per un percorso del dispositivo come <strong>\/dev\/ttyUSB0<\/strong>.<\/p><p>Per impostazione predefinita, i container vengono eseguiti in isolamento e non possono accedere ai dispositivi dell&rsquo;host. Per consentire l&rsquo;accesso, passa esplicitamente il dispositivo quando avvii il container utilizzando il flag <strong>&ndash;device<\/strong>:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker run --device=\/dev\/ttyUSB0 my-image<\/pre><p>Se il container ha bisogno di permessi pi&ugrave; ampi ma non dell&rsquo;accesso completo ai dispositivi, puoi concedere specifiche capacit&agrave; Linux con il flag <strong>&ndash;cap-add<\/strong>:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker run --cap-add=SYS_ADMIN my-image<\/pre><p>Questo approccio segue il principio del privilegio minimo &ndash; concedendo solo le capacit&agrave; di cui il container ha effettivamente bisogno. Le capacit&agrave; comuni includono <strong>NET_ADMIN<\/strong> per la configurazione di rete e <strong>SYS_PTRACE<\/strong> per il debug.<\/p><p>Quando dispositivi o capacit&agrave; specifiche non sono sufficienti, puoi usare il flag <strong>&ndash;privileged<\/strong>:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker run --privileged my-image<\/pre><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"69d230b3babce\"}' data-wp-interactive=\"core\/image\" class=\"aligncenter size-large is-resized wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"184\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/27\/2026\/02\/terminale-docker-run-privileged-mia-immagine.png\/public\" alt=\"Comando da terminale che esegue un container con il flag privileged\" class=\"wp-image-7895\" style=\"width:648px;height:auto\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/27\/2026\/02\/terminale-docker-run-privileged-mia-immagine.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/27\/2026\/02\/terminale-docker-run-privileged-mia-immagine.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/27\/2026\/02\/terminale-docker-run-privileged-mia-immagine.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Ingrandisci\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div><p>Questa opzione concede al container l&rsquo;accesso completo a tutti i dispositivi dell&rsquo;host e disabilita la maggior parte delle funzionalit&agrave; di isolamento della sicurezza.<\/p><p>I container avviati in questa modalit&agrave; possono ottenere il controllo a livello root sul sistema host. Usa <strong>&ndash;privileged<\/strong> solo in ambienti di sviluppo locali affidabili o quando non sono disponibili alternative pi&ugrave; sicure.<\/p><p>Per i carichi di lavoro di produzione, preferisci sempre <strong>&ndash;device<\/strong> per hardware specifico o <strong>&ndash;cap-add<\/strong> per capacit&agrave; specifiche.<\/p><h2 class=\"wp-block-heading\" id=\"h-6-riavvia-docker-e-testa-la-tua-configurazione\">6. Riavvia Docker e testa la tua configurazione<\/h2><p>Dopo aver applicato le modifiche ai gruppi utente o le correzioni dei permessi, riavvia il servizio Docker affinch&eacute; il daemon riconosca la configurazione aggiornata.<\/p><p>Riavvia Docker con <strong>systemctl<\/strong>:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo systemctl restart docker<\/pre><p>Dopo il riavvio del servizio, verifica la correzione eseguendo il container <strong>hello-world<\/strong> standard senza usare <strong>sudo<\/strong>:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker run hello-world<\/pre><p>Se l&rsquo;immagine viene scaricata ed eseguita correttamente mostrando un messaggio di benvenuto, l&rsquo;errore di permessi &egrave; risolto.<\/p><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"69d230b3bb7a6\"}' data-wp-interactive=\"core\/image\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"505\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/27\/2026\/02\/terminale-esegui-ciao-mondo-download-completato-ciao-da-docker-evidenziato.png\/public\" alt=\"Output del container hello-world di Docker che conferma la configurazione riuscita\" class=\"wp-image-7896\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/27\/2026\/02\/terminale-esegui-ciao-mondo-download-completato-ciao-da-docker-evidenziato.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/27\/2026\/02\/terminale-esegui-ciao-mondo-download-completato-ciao-da-docker-evidenziato.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/27\/2026\/02\/terminale-esegui-ciao-mondo-download-completato-ciao-da-docker-evidenziato.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Ingrandisci\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div><p>Se l&rsquo;errore persiste, riavvia l&rsquo;intero sistema per assicurarti che tutte le appartenenze ai gruppi e le modifiche alla sessione abbiano effetto:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo reboot<\/pre><h2 class=\"wp-block-heading\" id=\"h-cosa-dovresti-imparare-dopo-in-docker\">Cosa dovresti imparare dopo in Docker?<\/h2><p>Ora che la tua installazione di Docker funziona senza errori di autorizzazione, sei pronto a lavorare con i container in modo sicuro e con maggiore sicurezza.<\/p><p>Risolvere i problemi legati all&rsquo;ambiente &egrave; un passo fondamentale nel tuo percorso di apprendimento di Docker. Ti permette di concentrarti sullo sviluppo e sulla distribuzione delle applicazioni, invece di dover risolvere continuamente problemi di configurazione.<\/p><p>Come passo successivo, approfondisci la comprensione dei concetti chiave di Docker, come la gestione delle immagini, i cicli di vita dei container, Docker Compose, la persistenza dei dati e il networking dei container.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>L&rsquo;errore &ldquo;permission denied&rdquo; di Docker si verifica di solito quando il tuo account utente non dispone dei permessi necessari per accedere al socket del daemon Docker o ai file e alle directory richiesti. Docker utilizza queste restrizioni per impedire accessi non autorizzati, ma possono interrompere il flusso di lavoro, soprattutto quando configuri ambienti di sviluppo [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/it\/tutorial\/come-risolvere-docker-permission-denied\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":190,"featured_media":7894,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rank_math_title":"Come risolvere l\u2019errore \"Docker permission denied\"","rank_math_description":"Scopri come risolvere l\u2019errore \"Docker permission denied\", dall\u2019aggiunta dell\u2019utente al gruppo Docker al riavvio del daemon e ai test finali.","rank_math_focus_keyword":"docker permission denied","footnotes":""},"categories":[17],"tags":[],"class_list":["post-7897","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-vps"],"hreflangs":[],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/it\/tutorial\/wp-json\/wp\/v2\/posts\/7897","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/it\/tutorial\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/it\/tutorial\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/it\/tutorial\/wp-json\/wp\/v2\/users\/190"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/it\/tutorial\/wp-json\/wp\/v2\/comments?post=7897"}],"version-history":[{"count":13,"href":"https:\/\/www.hostinger.com\/it\/tutorial\/wp-json\/wp\/v2\/posts\/7897\/revisions"}],"predecessor-version":[{"id":7990,"href":"https:\/\/www.hostinger.com\/it\/tutorial\/wp-json\/wp\/v2\/posts\/7897\/revisions\/7990"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/it\/tutorial\/wp-json\/wp\/v2\/media\/7894"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/it\/tutorial\/wp-json\/wp\/v2\/media?parent=7897"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/it\/tutorial\/wp-json\/wp\/v2\/categories?post=7897"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/it\/tutorial\/wp-json\/wp\/v2\/tags?post=7897"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}