{"id":49799,"date":"2026-01-20T12:48:28","date_gmt":"2026-01-20T15:48:28","guid":{"rendered":"\/pt\/tutoriais\/como-corrigir-o-erro-docker-permission-denied"},"modified":"2026-03-10T12:59:22","modified_gmt":"2026-03-10T15:59:22","slug":"como-corrigir-o-erro-docker-permission-denied","status":"publish","type":"post","link":"\/pt\/tutoriais\/como-corrigir-o-erro-docker-permission-denied","title":{"rendered":"Como corrigir o erro Docker permission denied no Ubuntu"},"content":{"rendered":"<p>O erro Docker permission denied (permiss&atilde;o negada) geralmente acontece quando <strong>sua conta de usu&aacute;rio n&atilde;o tem permiss&atilde;o para acessar o socket do Docker daemon ou determinados arquivos e diret&oacute;rios necess&aacute;rios para a execu&ccedil;&atilde;o dos containers.<\/strong><\/p><p>Essas restri&ccedil;&otilde;es existem para evitar acessos n&atilde;o autorizados ao Docker. No entanto, no Ubuntu, elas podem atrapalhar bastante o fluxo de trabalho ao configurar ambientes de desenvolvimento.<\/p><p>Para corrigir o erro de permiss&atilde;o negada do Docker, siga estas seis solu&ccedil;&otilde;es pr&aacute;ticas:<\/p><ol class=\"wp-block-list\">\n<li><strong>Modifique o grupo do usu&aacute;rio<\/strong>. Adicione sua conta de usu&aacute;rio ao grupo <strong>docker<\/strong> para que voc&ecirc; possa executar comandos do Docker sem <strong>o sudo<\/strong>.<\/li>\n\n\n\n<li><strong>Ajuste a propriedade de arquivos e diret&oacute;rios<\/strong>. Atualize a propriedade dos arquivos de configura&ccedil;&atilde;o e dos volumes montados para garantir que o mecanismo do Docker possa ler e gravar dados.<\/li>\n\n\n\n<li><strong>Verifique as permiss&otilde;es de socket<\/strong>. Confira os n&iacute;veis de permiss&atilde;o do Docker Unix socket para garantir que o canal de comunica&ccedil;&atilde;o com o daemon n&atilde;o esteja bloqueado.<\/li>\n\n\n\n<li><strong>Atualize permiss&otilde;es de execu&ccedil;&atilde;o de scripts<\/strong>. Certifique-se de que comandos no Dockerfile e scripts definidos em <strong>ENTRYPOINT<\/strong> tenham permiss&atilde;o de execu&ccedil;&atilde;o, evitando falhas ao iniciar containers.<\/li>\n\n\n\n<li><strong>Configure o acesso ao hardware<\/strong>. Permita que os containers acessem dispositivos espec&iacute;ficos, como USBs ou GPUs, quando o erro estiver relacionado a permiss&otilde;es de hardware.<\/li>\n\n\n\n<li><strong>Reinicie o Docker daemon<\/strong>. Reinicie o servi&ccedil;o do Docker e sua sess&atilde;o de usu&aacute;rio para aplicar corretamente todas as mudan&ccedil;as de permiss&atilde;o e grupo.<\/li>\n<\/ol><p>\n\n\n\n<\/p><h2 class=\"wp-block-heading\" id=\"h-pre-requisitos\"><strong>Pr&eacute;-requisitos<\/strong> <\/h2><p>Antes de corrigir o erro docker permission denied, verifique se o seu sistema Linux atende aos requisitos b&aacute;sicos para alterar configura&ccedil;&otilde;es administrativas.<\/p><ul class=\"wp-block-list\">\n<li><strong>Acesso administrativo<\/strong>. Voc&ecirc; precisa de permiss&otilde;es <strong>sudo<\/strong> ou acesso como <strong>root<\/strong> para modificar grupos de usu&aacute;rios e permiss&otilde;es de arquivos.<\/li>\n\n\n\n<li><strong>Verifica&ccedil;&atilde;o de grupo de usu&aacute;rios<\/strong>. Confirme a quais grupos sua conta pertence executando o comando <strong>groups $USER<\/strong>.<\/li>\n<\/ul><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"69f42c81447cb\"}' data-wp-interactive=\"core\/image\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" 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=\"\/br\/tutoriais\/wp-content\/uploads\/sites\/53\/2026\/01\/usuarios-de-grupos-de-terminais.png\" alt=\"Sa&iacute;da do terminal mostrando as associa&ccedil;&otilde;es de grupo de usu&aacute;rios Linux atuais.\" class=\"wp-image-52764\"><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Ampliar\" 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>Instala&ccedil;&atilde;o do Docker<\/strong>. Confirme se <a href=\"\/pt\/tutoriais\/instalar-docker-ubuntu\">o Docker est&aacute; instalado<\/a> e em execu&ccedil;&atilde;o executando o comando<strong> `docker &ndash;version`<\/strong>.<\/li>\n<\/ul><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"69f42c8146f15\"}' data-wp-interactive=\"core\/image\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" 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=\"\/br\/tutoriais\/wp-content\/uploads\/sites\/53\/2026\/01\/terminal-docker-versao-1.png\" alt=\"Sa&iacute;da do terminal confirmando a vers&atilde;o do Docker instalada.\" class=\"wp-image-52765\"><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Ampliar\" 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>Embora as instru&ccedil;&otilde;es deste guia sejam focadas no Ubuntu, elas tamb&eacute;m funcionam na maioria das distribui&ccedil;&otilde;es baseadas em Debian.<\/p><h2 class=\"wp-block-heading\" id=\"h-1-adicione-seu-usuario-ao-grupo-docker\"><strong>1. Adicione seu usu&aacute;rio ao grupo Docker<\/strong><\/h2><p>A causa mais comum do erro de permiss&atilde;o negada &eacute; o usu&aacute;rio n&atilde;o fazer parte do grupo <strong>docker<\/strong>.<\/p><p>Por padr&atilde;o, o daemon do Docker &eacute; executado como um servi&ccedil;o de propriedade do usu&aacute;rio root. Somente usu&aacute;rios do grupo <strong>docker<\/strong> podem se comunicar com ele sem usar <strong>sudo<\/strong>.<\/p><p>Para corrigir esse problema, adicione seu usu&aacute;rio atual ao grupo <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>Este comando atualiza sua conta de usu&aacute;rio adicionando-a ( <strong>-a<\/strong> ) ao grupo especificado ( <strong>-G<\/strong> ). Como resultado, seu usu&aacute;rio obt&eacute;m permiss&atilde;o para acessar o socket do daemon do Docker e executar <a href=\"\/pt\/tutoriais\/docker-cheat-sheet\">comandos do Docker<\/a> diretamente.<\/p><p>Para que a mudan&ccedil;a tenha efeito, fa&ccedil;a logout e login novamente no sistema.<\/p><p>Depois de entrar novamente, confirme se o grupo foi aplicado corretamente executando:<\/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>A sa&iacute;da deve incluir <strong>docker<\/strong> na lista de grupos.<\/p><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"69f42c814956c\"}' data-wp-interactive=\"core\/image\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" 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=\"\/br\/tutoriais\/wp-content\/uploads\/sites\/53\/2026\/01\/terminal-id-ng-docker-destacado.png\" alt=\"Sa&iacute;da do terminal mostrando a associa&ccedil;&atilde;o ao grupo do Docker destacada\" class=\"wp-image-52766\"><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Ampliar\" 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 quiser testar imediatamente sem sair da sess&atilde;o, execute:<\/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>Esse comando aplica a altera&ccedil;&atilde;o de grupo apenas na sess&atilde;o atual do terminal.<\/p><h2 class=\"wp-block-heading\" id=\"h-2-corrija-permissoes-de-arquivos-e-diretorios\"><strong>2. Corrija permiss&otilde;es de arquivos e diret&oacute;rios<\/strong><\/h2><p>Se adicionar seu usu&aacute;rio ao grupo n&atilde;o resolver o problema, o problema pode estar em permiss&otilde;es incorretas em arquivos de configura&ccedil;&atilde;o ou em volumes montados.<\/p><p>O Docker precisa de acesso de leitura e escrita aos arquivos de configura&ccedil;&atilde;o &mdash; principalmente ao <strong>config.json<\/strong>.<\/p><p>Primeiro, verifique as permiss&otilde;es do diret&oacute;rio local de configura&ccedil;&atilde;o do Docker:<\/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\"><figure data-wp-context='{\"imageId\":\"69f42c814ba7f\"}' data-wp-interactive=\"core\/image\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" 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=\"\/br\/tutoriais\/wp-content\/uploads\/sites\/53\/2026\/01\/terminal-ls-l-docker-root-root-destacado.png\" alt=\"Sa&iacute;da do terminal mostrando a propriedade root dos arquivos de configura&ccedil;&atilde;o do Docker.\" class=\"wp-image-52767\"><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Ampliar\" 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 a sa&iacute;da mostrar que os arquivos pertencem ao <strong>root<\/strong> em vez do seu usu&aacute;rio, altere a propriedade com o <a href=\"\/pt\/tutoriais\/comando-chown-linux\">comando chown<\/a>:<\/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>Esse comando altera de forma recursiva a propriedade do diret&oacute;rio <strong>.docker<\/strong> para o seu usu&aacute;rio atual.<\/p><p>Em seguida, verifique poss&iacute;veis problemas com volumes montados. Quando voc&ecirc; monta um diret&oacute;rio do host dentro de um container, o usu&aacute;rio dentro do container precisa ter permiss&atilde;o para ler e\/ou gravar nesse diret&oacute;rio.<\/p><p>Por exemplo, ao iniciar um container com um volume:<\/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>Certifique-se de que o diret&oacute;rio do host <strong>~\/data<\/strong> tenha as permiss&otilde;es corretas. Voc&ecirc; pode conceder acesso de leitura e grava&ccedil;&atilde;o ao usu&aacute;rio ( <strong>u<\/strong> ) com o seguinte comando chmod:<\/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>Isso garante que o usu&aacute;rio que possui o diret&oacute;rio tenha permiss&otilde;es suficientes para gerenciar os dados dentro do volume montado.<\/p><h2 class=\"wp-block-heading\" id=\"h-3-verifique-as-permissoes-do-socket-do-docker\"><strong>3. Verifique as permiss&otilde;es do socket do Docker<\/strong> <\/h2><p>O daemon do Docker se comunica por meio de um socket Unix localizado em<strong> \/var\/run\/docker.sock<\/strong>. Se este socket tiver permiss&otilde;es incorretas, o cliente Docker n&atilde;o poder&aacute; enviar comandos para o daemon.<\/p><p>Para verificar as permiss&otilde;es atuais do socket, execute:<\/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>O resultado esperado deve ser parecido com este:<\/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>Essa sa&iacute;da indica que o socket pertence ao usu&aacute;rio <strong>root<\/strong> e ao grupo <strong>docker<\/strong>, com permiss&otilde;es de leitura e escrita para o grupo. Se voc&ecirc; vir algo assim e seu usu&aacute;rio j&aacute; fizer parte do grupo <strong>docker<\/strong>, a configura&ccedil;&atilde;o do socket est&aacute; correta.<\/p><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"69f42c814dfd1\"}' data-wp-interactive=\"core\/image\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" 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=\"\/br\/tutoriais\/wp-content\/uploads\/sites\/53\/2026\/01\/terminal-ls-l-var-run-docker-sock-root-docker-highlighted.png\" alt=\"Sa&iacute;da do terminal mostrando o arquivo docker.sock pertencente ao usu&aacute;rio root e ao grupo docker.\" class=\"wp-image-52768\"><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Ampliar\" 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 o grupo n&atilde;o for <strong>&ldquo;docker&rdquo;<\/strong> ou as permiss&otilde;es forem diferentes, <strong>n&atilde;o<\/strong> as altere manualmente executando <strong>o comando &ldquo;chmod 666 \/var\/run\/docker.sock&rdquo;<\/strong>.<\/p><p>Especialmente em ambientes de produ&ccedil;&atilde;o, isso representa um grave risco de seguran&ccedil;a, pois concede acesso total ao Docker daemon para qualquer usu&aacute;rio do sistema &mdash; o que equivale, na pr&aacute;tica, a acesso de n&iacute;vel root ao host.<\/p><p>Em vez disso, a abordagem correta &eacute; garantir que seu usu&aacute;rio perten&ccedil;a ao grupo <strong>docker<\/strong>. Quando o Docker daemon &eacute; iniciado, ele define automaticamente as permiss&otilde;es adequadas para o socket.<\/p><h2 class=\"wp-block-heading\" id=\"h-4-corrija-permissoes-no-dockerfile-ou-no-script-entrypoint\"><strong>4. Corrija permiss&otilde;es no Dockerfile ou no script ENTRYPOINT<\/strong><\/h2><p>O erro docker permission denied tamb&eacute;m pode ocorrer dentro do container quando o script definido como ENTRYPOINT n&atilde;o tem permiss&atilde;o de execu&ccedil;&atilde;o.<\/p><p>Esse problema &eacute; comum quando scripts s&atilde;o copiados de sistemas que n&atilde;o usam permiss&otilde;es Unix, como o Windows, para o contexto de build do Docker. Nesse processo, o bit de execu&ccedil;&atilde;o pode ser perdido.<\/p><p>Quando isso acontece, o container falha ao iniciar porque n&atilde;o consegue executar o script definido nas instru&ccedil;&otilde;es <strong>ENTRYPOINT<\/strong> ou <strong>CMD<\/strong>.<\/p><p>Para corrigir, adicione uma instru&ccedil;&atilde;o <strong>RUN<\/strong> logo ap&oacute;s o <strong>COPY<\/strong> no Dockerfile, garantindo permiss&atilde;o de execu&ccedil;&atilde;o para o 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=\"\">EXECUTE chmod +x \/usr\/local\/bin\/entrypoint.sh<\/pre><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"69f42c8150484\"}' data-wp-interactive=\"core\/image\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" 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=\"\/br\/tutoriais\/wp-content\/uploads\/sites\/53\/2026\/01\/terminal-nano-dockerfile-run-chmod-entrypoint-sh-destacado.png\" alt=\"Abra o Dockerfile no nano com o script de ponto de entrada (chmod) selecionado.\" class=\"wp-image-52769\"><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Ampliar\" 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>Esse passo garante que o script continue execut&aacute;vel independentemente das permiss&otilde;es no sistema host. Ele &eacute; especialmente importante ao criar imagens personalizadas que dependem de scripts de inicializa&ccedil;&atilde;o.<\/p><h2 class=\"wp-block-heading\" id=\"h-5-conceda-acesso-a-dispositivos-para-containers-docker\"><strong>5. Conceda acesso a dispositivos para containers Docker<\/strong><\/h2><p>Se um container precisa interagir com dispositivos de hardware &mdash; como USB, webcam ou GPU &mdash; voc&ecirc; pode encontrar um erro <strong>docker permission denied<\/strong> apontando para caminhos como <strong>\/dev\/ttyUSB0<\/strong>.<\/p><p>Por padr&atilde;o, os cont&ecirc;ineres s&atilde;o executados isoladamente e n&atilde;o podem acessar dispositivos do host. Para permitir o acesso, especifique explicitamente o dispositivo ao iniciar o cont&ecirc;iner usando a 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 minha-imagem<\/pre><p>Se o container precisar de permiss&otilde;es mais amplas, mas n&atilde;o de acesso total a dispositivos, voc&ecirc; pode conceder capacidades espec&iacute;ficas do Linux com a 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 minha-imagem<\/pre><p>Essa abordagem segue o princ&iacute;pio do menor privil&eacute;gio &ndash; isto &eacute;, conceder apenas as capacidades que o container realmente precisa. Algumas funcionalidades comuns incluem <strong>NET_ADMIN<\/strong> para configura&ccedil;&atilde;o de rede e <strong>SYS_PTRACE<\/strong> para depura&ccedil;&atilde;o.<\/p><p>Quando nem dispositivos espec&iacute;ficos nem capacidades individuais resolvem, existe a op&ccedil;&atilde;o <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 minha-imagem<\/pre><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"69f42c8152b42\"}' data-wp-interactive=\"core\/image\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" 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=\"\/br\/tutoriais\/wp-content\/uploads\/sites\/53\/2026\/01\/terminal-docker-run-privileged-my-image.png\" alt=\"Comando de terminal executando um cont&ecirc;iner com a flag de privil&eacute;gios\" class=\"wp-image-52770\"><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Ampliar\" 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>Essa op&ccedil;&atilde;o concede acesso total a todos os dispositivos do host e desativa grande parte dos mecanismos de isolamento do Docker.<\/p><p>Containers iniciados nesse modo podem obter <strong>controle de n&iacute;vel root sobre o host<\/strong>. Use <strong>&ndash;privileged<\/strong> apenas em ambientes locais e confi&aacute;veis ou quando n&atilde;o houver alternativas mais seguras.<\/p><p>Em ambientes de produ&ccedil;&atilde;o, prefira sempre <strong>&ndash;device<\/strong> para hardware espec&iacute;fico ou <strong>&ndash;cap-add<\/strong> para permiss&otilde;es pontuais.<\/p><h2 class=\"wp-block-heading\" id=\"h-6-reinicie-o-docker-e-teste-a-configuracao\"><strong>6. Reinicie o Docker e teste a configura&ccedil;&atilde;o<\/strong><\/h2><p>Depois de aplicar mudan&ccedil;as em grupos de usu&aacute;rios ou corrigir permiss&otilde;es, &eacute; importante reiniciar o servi&ccedil;o do Docker para que o daemon reconhe&ccedil;a a nova configura&ccedil;&atilde;o.<\/p><p>Reinicie o Docker com <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>Ap&oacute;s a reinicializa&ccedil;&atilde;o, verifique se o erro foi resolvido executando o container padr&atilde;o <strong>hello-world<\/strong> sem usar <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 a imagem for baixada, o container rodar corretamente e uma mensagem de boas-vindas aparecer no terminal, o problema de permiss&atilde;o foi corrigido com sucesso.<\/p><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"69f42c815516c\"}' data-wp-interactive=\"core\/image\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" 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=\"\/br\/tutoriais\/wp-content\/uploads\/sites\/53\/2026\/01\/terminal-run-hello-world-download-complete-hello-from-docker-highlighted.png\" alt=\"Sa&iacute;da do cont&ecirc;iner \" class=\"wp-image-52771\"><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Ampliar\" 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>Caso o erro ainda persista, reinicie todo o sistema para garantir que todas as altera&ccedil;&otilde;es de grupo e sess&atilde;o sejam aplicadas:<\/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-o-que-aprender-a-seguir-em-docker\"><strong>O que aprender a seguir em Docker?<\/strong><\/h2><p>Agora que sua instala&ccedil;&atilde;o do Docker funciona sem erros de permiss&atilde;o, voc&ecirc; j&aacute; pode trabalhar com containers de forma segura e confi&aacute;vel.<\/p><p>Resolver problemas de ambiente, como o docker permission denied, &eacute; um passo essencial no aprendizado de Docker. Isso evita distra&ccedil;&otilde;es com configura&ccedil;&otilde;es e permite focar no que realmente importa: criar, executar e implantar aplica&ccedil;&otilde;es.<\/p><p>Como pr&oacute;ximo passo, vale aprofundar seu entendimento dos conceitos centrais do Docker. Nosso <a href=\"\/pt\/tutoriais\/docker-tutorial\">tutorial completo sobre Docker<\/a> aborda temas fundamentais como gerenciamento de imagens, ciclo de vida dos containers, uso do Docker Compose, persist&ecirc;ncia de dados e redes entre containers &mdash; tudo o que voc&ecirc; precisa para evoluir do b&aacute;sico para cen&aacute;rios mais avan&ccedil;ados.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>O erro Docker permission denied (permiss&atilde;o negada) geralmente acontece quando sua conta de usu&aacute;rio n&atilde;o tem permiss&atilde;o para acessar o socket do Docker daemon ou determinados arquivos e diret&oacute;rios necess&aacute;rios para a execu&ccedil;&atilde;o dos containers. Essas restri&ccedil;&otilde;es existem para evitar acessos n&atilde;o autorizados ao Docker. No entanto, no Ubuntu, elas podem atrapalhar bastante o fluxo [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/pt\/tutoriais\/como-corrigir-o-erro-docker-permission-denied\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":356,"featured_media":49800,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"rank_math_title":"","rank_math_description":"","rank_math_focus_keyword":"docker permission denied","footnotes":""},"categories":[4915],"tags":[],"class_list":["post-49799","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-vps"],"hreflangs":[{"locale":"pt-BR","link":"https:\/\/www.hostinger.com\/br\/tutoriais\/como-corrigir-o-erro-docker-permission-denied","default":1},{"locale":"pt-PT","link":"https:\/\/www.hostinger.com\/pt\/tutoriais\/como-corrigir-o-erro-docker-permission-denied","default":0}],"acf":[],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/posts\/49799","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/users\/356"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/comments?post=49799"}],"version-history":[{"count":0,"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/posts\/49799\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/media\/49800"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/media?parent=49799"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/categories?post=49799"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/tags?post=49799"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}