Instalei o Docker na minha máquina onde tenho o Ubuntu OS. Depois que eu instalei o docker, quando executo
sudo docker run hello-world
Tudo bem, mas quero ocultar a palavra sudo
para encurtar o comando.
Se eu escrever o comando sem a palavra sudo
docker run hello-world
Que exibem o seguinte:
docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.35/containers/create: dial unix /var/run/docker.sock: connect: permission denied.See 'docker run --help'.
Aconteceu o mesmo quando tento fazer
docker-compose up
Como posso resolver isto?
docker
docker-compose
Carlos Andres
fonte
fonte
Respostas:
Se você deseja executar a janela de encaixe como usuário não raiz, é necessário adicioná-lo ao grupo de janela de encaixe.
Retirado da documentação oficial do docker: gerenciar-docker-como-não-root-user
fonte
sudo systemctl restart docker
docker
grupo concede essencialmente acesso root , sem impor políticas e auditorias regulares do sudo. Consulte a edição nº 9976 do GitHub para obter detalhes e discussão.Após uma atualização, obtive a permissão negada. Executando as etapas das etapas de pós-instalação do 'mkb' não mudam nada porque meu usuário já estava no grupo 'janela de encaixe'; Repito duas vezes, sem sucesso.
Após uma hora de pesquisa, a seguinte solução finalmente funcionou:
A solução veio de Olshansk .
Parece que a atualização recriou o soquete sem permissão suficiente para o grupo 'janela de encaixe'.
Problemas
Esse chmod rígido abre uma brecha de segurança e, após cada reinicialização, esse erro é iniciado novamente e é necessário executar novamente o comando acima toda vez. Eu quero uma solução de uma vez por todas. Para isso você tem dois problemas:
1) Problema com
SystemD
: O soquete será criado apenas com o proprietário 'root' e o grupo 'root'.Você pode verificar este primeiro problema com este comando:
Se tudo isso for bom, você verá '
root/docker
' não 'root/root
'.2) Problema com o login gráfico : /superuser/1348196/why-my-linux-account-only-belongs-to-one-group
Você pode verificar este segundo problema com este comando:
Se tudo estiver correto, você deverá ver o grupo de janelas de encaixe na lista. Caso contrário, tente o comando
se você vir o grupo de janelas de encaixe , é por causa do erro.
Soluções
Se você conseguir obter uma solução alternativa para o logon gráfico, faça o trabalho:
Mas se você não pode gerenciar esse bug, uma solução não tão ruim pode ser a seguinte:
Isso funciona porque você está em um ambiente gráfico e provavelmente o único usuário no seu computador. Nos dois casos, você precisa de uma reinicialização (ou uma
sudo chmod 666 /var/run/docker.sock
)fonte
:ro
final ... assim que eu adicionei que estavafonte
newgrp
comando solicitou uma senha e não aceitou minha senha de usuário. Em vez disso,su - $USER
trabalhou para evitar sair / entrar.docker
grupo/var/run/docker.sock
fonte
Eu resolvo este erro com o comando:
fonte
Você sempre pode tentar o
Manage Docker as a non-root user
parágrafo nos https://docs.docker.com/install/linux/linux-postinstall/ docs.Depois de fazer isso também se o problema persistir, você pode executar o seguinte comando para resolvê-lo:
fonte
chmod 666
) é um desastre de segurança ... Isso nunca deve ser recomendado.Isso resolve meu problema.
fonte
Para corrigir esse problema, procurei onde está a minha janela de encaixe e a composição de encaixe instalada. No meu caso,
docker
foi instalado/usr/bin/docker
edocker-compose
foi instalado no/usr/local/bin/docker-compose
caminho. Então, escrevo isso no meu terminal:Para encaixar:
Para
docker-compose
:Agora não preciso escrever em meus comandos a palavra de encaixe
sudo
/ ************************************************* ********************** /
ERRATA:
A melhor solução para esse problema foi comentada por @mkasberg. Cito o comentário:
That might work, you might run into issues down the road. Also, it's a security vulnerability. You'd be better off just adding yourself to the docker group, as the docs say. sudo groupadd docker, sudo usermod -aG docker $USER.
Docs:
https://docs.docker.com/install/linux/linux-postinstall/Muito obrigado!
fonte
docker
grupo, como dizem os médicos.sudo groupadd docker
,sudo usermod -aG docker $USER
.O lightdm e o kwallet são enviados com um bug que parece não passar nos grupos suplementares no login. Para resolver isso, eu também, ao lado
sudo usermod -aG docker $USER
, tive que comentarpara
em
/etc/pam.d/lightdm
antes de reiniciar , para o grupo janela de encaixe para realmente ter efeito.bug: https://bugs.launchpad.net/lightdm/+bug/1781418 e aqui: https://bugzilla.redhat.com/show_bug.cgi?id=1581495
fonte
use este comando
em seguida, reinicie o computador que funcionou para mim.
fonte
Sério, pessoal. Não adicione o Docker nos seus grupos ou modifique o soquete posix (sem um SELinux reforçado); é uma maneira simples de tornar um root privesc. Basta adicionar um alias no seu .bashrc, é mais simples e seguro como: alias dc = 'sudo docker'.
fonte
você pode seguir estas etapas e isso funcionará para você:
sudo groupadd docker
sudo usermod -aG docker $USER
groups
newgrp docker
sudo chown root:docker /var/run/docker.sock
sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
sudo chmod g+rwx "$HOME/.docker" -R
Após esse teste, você pode executar
docker ps -a
fonte
chown
o arquivo docker.sock.Depois de instalar o docker, criar o grupo 'docker' e adicionar usuário a ele, edite o arquivo da unidade de serviço do docker:
Adicione duas linhas na seção [Serviço]:
Salve o arquivo (Ctrl-X, y, Enter)
Execute e ative o serviço Docker:
fonte
Após a instalação do Docker no Centos. Ao executar o comando abaixo, obtive um erro abaixo.
Alterar grupo e permissão para docker.socket
Verifique usando o comando docker abaixo
fonte
sudo chmod 666 /var/run/docker.sock
isso me ajudou enquanto eu estava recebendo erro, mesmo ao fazer login na janela de encaixe Mas agora isso funciona completamente bem no meu sistema.
fonte