Eu enfrentei um problema semelhante, que é um problema de permissão, e a causa desse problema é que o daemon / servidor do Docker sempre é executado como root
usuário e deseja que você sempre anteceda o comando do docker sudo
.
O daemon do Docker se liga a um soquete Unix em vez de uma porta TCP. Por padrão, o soquete Unix é de propriedade do usuário root
e outros usuários só podem acessá-lo usandosudo
.
Para corrigir isso, aqui está o que funcionou para mim:
Primeiro, verifique se você já possui um grupo de janelas de encaixe:
cat /etc/group
Se você não encontrar docker
na lista exibida, será necessário criar uma:
sudo groupadd docker
Em seguida, confirme seu user
e você group
usando o comando abaixo:
cat /etc/group
Role para ver o grupo da janela de encaixe. Deve ser deste formato
docker:x:140:promisepreston
onde docker
está o meu group
epromisepreston
é meuuser
Agora podemos adicionar seu usuário ao grupo de janelas de encaixe
Apenas para arquivos de contêiner do Docker:
Copie e execute o comando abaixo no seu terminal exatamente como ele é declarado sem modificá-lo, independentemente da imagem do docker / contêiner / comando que você deseja executar ou está tentando executar ou está apresentando o problema de permissão:
sudo usermod -aG docker $USER
Depois de executar o comando acima, você precisará fazer logoff e logon novamente, para que sua associação ao grupo seja reavaliada. No entanto, no Linux, você também pode executar o seguinte comando abaixo para ativar as alterações nos grupos ( copie e execute o comando abaixo em seu terminal exatamente como ele é declarado sem modificá-lo de qualquer maneira, independentemente da imagem do docker / container / comando que você deseja executar ou está tentando executar ou está apresentando o problema de permissão ):
newgrp docker
Agora você pode verificar se é possível executar comandos do docker sem permissões do sudo, executando o comando que está causando o problema de permissões novamente, diga ( Substitua my-command
pelo nome da sua imagem / contêiner / comando ):
docker run my-command
Para arquivos do sistema de arquivos Docker e Local:
Se você tiver uma cópia dos arquivos no sistema de arquivos local, poderá alterar a propriedade do diretório do aplicativo em que os arquivos do aplicativo estão armazenados, usando este formato:
sudo chown <your_user>:<your_group> -R my-app-directory/
Então, no meu caso, será:
sudo chown promisepreston:docker -R my-app-directory/
Nota: Execute este comando dentro do diretório pai que abriga o diretório do aplicativo.
Isso é tudo.
Eu espero que isso ajude