Ao trabalhar com Docker, você pode encontrar uma instância em que o comando retorna um erro de “permissão negada”. Este erro ocorre quando você tenta executar o Docker sem permissões suficientes para o comando.
Docker requer permissões sudo ou root para executar os comandos associados por padrão. A tentativa de executar qualquer comando sem os privilégios necessários leva ao infame erro de “permissão negada”.
Este tutorial fornece vários métodos e técnicas que você pode usar para corrigir o erro “permissão negada” ao tentar executar os comandos do Docker.
Tenha em mente que ele não cobre o processo de execução do Docker em um ambiente sem root. Você pode verificar nosso tutorial sobre Docker sem root no seguinte recurso:
Requisitos:
Como você pode imaginar, para acompanhar esta postagem, você deve ter o seguinte:
- Docker versão 20.0 e superior
- Permissões Sudo ou root no sistema host
O que é o erro “Permissão negada”?
Quando o erro “permissão negada” ocorre no Docker, significa que o sistema host não pode estabelecer comunicação com o daemon Docker devido a permissões insuficientes. Um exemplo é mostrado a seguir:
$ execução do docker -isto caixa ocupada eh
Se você encontrar o erro fornecido, poderá usar alguns dos métodos a seguir para saber como corrigi-lo.
Método 1: execute o Docker como root
O primeiro e mais óbvio método de resolver o erro de “permissão negada” do Docker é usar o comando “sudo”. Se você tiver privilégios de sudo, poderá corrigi-lo executando o comando associado usando sudo.
Por exemplo, para corrigir o referido erro, podemos acrescentar sudo antes do comando da seguinte forma:
$ sudo execução do docker -isto caixa ocupada eh
Como você pode ver, o Docker extrai com êxito as imagens necessárias e executa o contêiner.
Método 2: reinicie o Docker Daemon
Às vezes, você pode obter o erro “permissão negada” no Docker se o mecanismo apresentar algum problema. Em vez de rastrear o problema manualmente, você pode tentar reiniciar rapidamente o daemon do Docker para recarregá-lo.
Comece verificando o status do daemon Docker da seguinte maneira:
$ docker systemctl status docker
Depois de garantir que o Docker esteja em execução, reinicie o serviço com o seguinte comando:
Isso deve inicializar o daemon Docker e corrigir qualquer problema potencial que possa estar impedindo você de executar qualquer comando.
Método 3: habilitar o usuário não root
Outro método que você pode usar para resolver o erro “permissão negada” no Docker é permitir que usuários não root executem os comandos do Docker.
Para habilitar este método, faça login no sistema host e crie um novo grupo para Docker.
$ sudo adicionar grupo -f janela de encaixe
Em seguida, adicione qualquer usuário desejado ao grupo Docker da seguinte maneira:
O comando anterior deve adicionar o usuário linuxhint ao grupo Docker.
Por fim, aplique as alterações do grupo à sessão atual usando o seguinte comando:
$ janela de encaixe newgrp
Depois de concluído, você pode executar qualquer comando do Docker sem usar sudo para qualquer usuário do grupo Docker.
Método 4: reconfigurar as permissões do Docker
O próximo método que você pode usar é redefinir as permissões dos soquetes Docker. Comece alterando a propriedade do soquete Docker Unix executando o seguinte comando:
$ sudo chown raiz: docker / era / correr / docker.sock
Em seguida, aproprie-se do diretório Docker oculto em seu diretório inicial usando o comando a seguir:
Por fim, atribua ao grupo as permissões de leitura e gravação no diretório da seguinte maneira:
Os métodos fornecidos devem definir permissões suficientes para arquivos e diretórios essenciais do Docker.
Conclusão
Neste tutorial, aprendemos como podemos usar os quatro métodos principais para resolver o erro de “permissão negada” do Docker ao invocar um comando do Docker.