Como definir permissões no Docker em Linux de forma permanente?
Você pode configurar o comando docker para ser utilizado sem a necessidade de utilização do comando sudo.
Para fazer esta configuração basta seguir o passos pós instalação.
Antes de prosseguir é necessário saber algumas coisas.
docker concede privilégio equivalente ao usuário root . Para mais detalhes de como isso impacta a segurança em seu sistema, veja Docker Daemon Attack Surface.docker sem conceder a permissão de root, veja Run the Docker daemon as a non-root user (Rootless mode).Agora vamos para as configurações necessárias:
1. crie o grupo docker
sudo groupadd docker2. Adicione seu usuário ao grupo docker .
sudo usermod -aG docker $USER3. Faça o logout e login novamente, assim as configurações executadas nos comandos executados anteriormente possam ser carregadas.
Se estiver testando em uma máquina virtual, pode ser necessário reiniciar a máquina virtual para que as alterações entrem em vigor. Em um ambiente Linux de desktop com o X Windows (wsl ou wsl2), saia completamente da sua sessão e, em seguida, faça login novamente.
No Linux, você também pode executar o seguinte comando para ativar as alterações nos grupos:
newgrp docker 4. Verifique que você pode executar o docker sem o comando sudo.
docker run hello-worldEste comando vai fazer o download de uma imagem e executar em um container. Quando este container executar ele vai imprimir uma mensagem e vai finalizar a execução do container.
Se foi possível executar o comando acima sem o sudo então a configuração foi feita com sucesso.
Caso contrário pode consultar se é possível resolver com alguma das dicas abaixo.
Solução de problemas
Se você executou comandos do docker-cli utilizando sudo antes de adicionar o seu usuário ao grupo docker, pode ser que veja a seguinte mensagem de erro:
WARNING: Error loading config file: /home/user/.docker/config.json -
stat /home/user/.docker/config.json: permission denied
Para solucionar este problema, remova o diretório ~/.docker/ (ele é gerado automaticamente, mas qualquer personalização feita será perdida), ou mude quem é o dono deste diretório com os comandos:
sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
sudo chmod g+rwx "$HOME/.docker" -R