Quero mudar para o Docker, então comecei a mexer com isso. Instalei o Docker em uma instalação do VirtualBox Ubuntu 15.10 (Wily Werewolf) e, conforme sugerido aqui , tentei executar um nginx básico Docker:
$ docker run --name mynginx1 -P -d nginx
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
Então, verifiquei se o Docker estava em execução:
$ sudo service docker status
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since vr 2015-11-06 08:41:48 CET; 15min ago
Docs: https://docs.docker.com
Main PID: 7542 (docker)
CGroup: /system.slice/docker.service
└─7542 /usr/bin/docker daemon -H fd://
nov 06 08:41:47 kramer65-VirtualBox systemd[1]: Starting Docker Application Container Engine...
nov 06 08:41:47 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:47.900410966+01:00" level=info msg="API ...ock"
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.033514149+01:00" level=info msg="Fire...lse"
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.141594321+01:00" level=info msg="Defa...ess"
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.416294436+01:00" level=warning msg="Y...it."
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.565507576+01:00" level=info msg="Load...rt."
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.567907022+01:00" level=info msg="Load...ne."
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.567945214+01:00" level=info msg="Daem...ion"
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.567969891+01:00" level=info msg="Dock....9.0
nov 06 08:41:48 kramer65-VirtualBox systemd[1]: Started Docker Application Container Engine.
Hint: Some lines were ellipsized, use -l to show in full.
Isso sugere que o daemon do Docker já está em execução, mas para ter certeza de que iniciei o daemon do Docker manualmente:
$ sudo docker daemon
INFO[0000] API listen on /var/run/docker.sock
INFO[0000] [graphdriver] using prior storage driver "aufs"
INFO[0000] Firewalld running: false
INFO[0000] Default bridge (docker0) is assigned with an IP address XXX.XX.X.X/XX. Daemon option --bip can be used to set a preferred IP address
WARN[0000] Your kernel does not support swap memory limit.
INFO[0000] Loading containers: start.
INFO[0000] Loading containers: done.
INFO[0000] Daemon has completed initialization
INFO[0000] Docker daemon commit=76d6bc9 execdriver=native-0.2 graphdriver=aufs version=1.9.0
Tentei executar a imagem novamente, mas com o mesmo resultado:
$ docker run --name mynginx1 -P -d nginx
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
Eu tentei executar o comando, mas sem sucesso. O que eu estou fazendo errado aqui?
Respostas:
Você precisa adicionar seu usuário atual ao grupo de janelas de encaixe da seguinte maneira:
em seguida, efetue logout e login novamente no sistema ou reinicie o sistema. teste por
docker version
para obter mais informações sobre como instalar o docker-engine, siga a documentação do docker
fonte
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
Adicione o usuário ao grupo de janelas de encaixe
Adicione o grupo de janelas de encaixe se ele ainda não existir:
sudo groupadd docker
Adicione o usuário conectado "$ {USER}" ao grupo de janelas de encaixe:
sudo gpasswd -a ${USER} docker
Reinicie o daemon do Docker:
sudo service docker restart
Faça um
newgrp docker
ou efetue logout / logon para ativar as alterações nos grupos.fonte
newgrp docker
é local para o shell, não a sessão de logon. Isso não está nada claro na página de manual.Normalmente, o seguinte comando faz o truque:
Isso, em vez de
docker start
nos casos em que o Docker parece já estar em execução.Se isso funcionar, como sugerido e em outra resposta e neste problema do GitHub , se você não se adicionou ao grupo de janelas de encaixe, faça isso executando:
E você provavelmente está pronto para ir.
Quanto a qualquer outra pessoa que se depare com isso, em algumas janelas de encaixe do SO não é iniciado logo após a instalação e, como resultado, o mesmo
can't connect to daemon message
aparece. Nesse caso, você pode primeiro verificar se o Docker realmente não está em execução, verificando o status do seu serviço docker executando:Se a saída se parecer com: em
docker stop/waiting
vez dedocker start/running, process 15378
, obviamente significa que o Docker não está ativo. Nesse caso, certifique-se de iniciá-lo com:E, como antes, você provavelmente estará pronto.
fonte
note to self: Recebo o erro no título da pergunta quando esqueço de executar o
docker
comando comsudo
:sudo docker run ...
[Ubuntu 15.10]
fonte
Tive o mesmo problema e o que funcionou para mim foi:
Verificar a propriedade do /var/run/docker.sock
Se você não é o proprietário, altere a propriedade com o comando
Em seguida, você pode prosseguir e tentar executar os comandos do docker sem problemas: D
fonte
root
mas emdocker
grupo. A abordagem correta é atribuir seu usuário atual aodocker
grupo, de acordo com a documentação do Docker:sudo groupadd docker && sudo usermod -aG docker $USER
Depois de instalar tudo e iniciar o serviço, tente fechar o terminal e abra-o novamente e tente puxar sua imagem
Editar
Também tive esse problema novamente, se a solução acima não funcionar, tente esta solução que é o comando abaixo
Considerações
Se o comando acima funcionar, você provavelmente está com problemas no docker de rede, de qualquer maneira isso o resolve.
Se a saída tiver algo parecido
Você realmente está com problemas de rede, no entanto, ainda não sei se na próxima vez que você reiniciar ( atualização , 2 meses sem problemas novamente), seu sistema operacional receberá esse problema novamente e se for um bug ou um problema de instalação
Minha versão do Docker
fonte
Após instalar o docker no Ubuntu, executei o seguinte comando:
Tentaste?
fonte
Eu tive o mesmo problema. Está lutando há dois dias para resolvê-lo.
Só funcionou quando eu fiz:
De acordo com o Tutorial do Docker , você precisa adicionar a chave do Docker se ainda não tiver sido adicionada usando:
$ sudo wget -qO- https://get.docker.com/gpg | sudo apt-key add -
Em seguida, verifique se você concede privilégios de docker a si mesmo usando:
$ sudo usermod -aG docker $USER
Espero que isso ajude voçe tambem.
fonte
sudo usermod -aG docker $USER
entre como root (
sudo su
) e tente o seguinte:Eu tenho o mesmo problema aqui, e o comando docker só funcionou como root e também com este
DOCKER_HOST
vazioPS: tenha cuidado também que a maneira correta e oficial de instalar no Ubuntu é usar seus repositórios apt (até 15.10), não com a coisa " wget ".
fonte
Para OSX :
Após abrir o docker e iniciar a máquina 'padrão' através do Quickstart Terminal ( https://docs.docker.com/engine/installation/mac/ ), tente os comandos do docker e a mensagem "não é possível conectar-se ao daemon do docker" , você precisará de algumas variáveis env definidas :
eval "$(docker-machine env default)"
Em seguida, experimente
docker run hello-world
para ver se está tudo bem.fonte
Para aqueles que já tentaram reiniciar sua máquina, desmarque a variável de ambiente DOCKER_HOST conforme informado na documentação do docker env e todo o resto tente seguir com o
Só isso fez o truque para mim, mesmo depois de reiniciar a máquina.
fonte
Dando acesso não raiz - da janela de encaixe
Adicione o grupo de janelas de encaixe se ele ainda não existir.
Adicione o usuário conectado "$ {USER}" ao grupo de janelas de encaixe.
Altere o nome do usuário para corresponder ao seu usuário preferido.
Pode ser necessário sair e fazer login novamente para que isso entre em vigor.
Reinicie o daemon do Docker.
fonte
Atualmente, esta pergunta é o número 3 em uma pesquisa no Google. Depois de fazer algumas pesquisas para resolver esse problema no meu sistema Linux, pensei em escrever essa resposta. A postagem original informa que o problema está no Ubuntu, mas também experimentei o problema usando o Fedora. Com isso em mente, aqui está o que eu fiz para corrigir o problema.
No Fedora 22
Instalando o Docker:
Depois de instalar o Docker:
Um usuário precisa ser adicionado ao grupo de janelas de encaixe.
O daemon do docker precisa ser iniciado
Você pode configurar o daemon para iniciar na inicialização
Você pode verificar se o serviço docker está em execução
E uma última verificação final
fonte
dockerroot
. Além disso, você provavelmente vai querer instalá-lo a partir do repositório (em vez decurl ... | sh
) para que possa ser atualizado mais tarde:dnf install docker
groupadd docker
e depois adicioná-lo ao seu nome de usuáriosudo usermod -aG docker your_username
Tente usar "sudo" com o comando que você está executando.
fonte
Eu tenho o mesmo problema ao executar o docker.
você pode executar comandos como usuário sudo :
fonte
Para o Ubuntu:
aconteceu comigo quando atualizei o docker.
Você precisa desmascarar o serviço e o soquete e, em seguida, reiniciar o serviço.
A seguir trabalhou para mim:
O que aconteceu nos bastidores O
systemd também tem a capacidade de marcar uma unidade como completamente instável, automática ou manualmente, vinculando-a a / dev / null. Isso é chamado de mascaramento da unidade e é possível com o comando mask.
Você pode verificar a lista de serviços mascarados usando:
Para ativar o início automático / manual do serviço, você precisa desmascará-lo usando:
Agora o serviço será ativado como mostrado abaixo
fonte
Como o docker se liga a um soquete unix que pertence ao root durante a inicialização, o uso de 'sudo' junto com os comandos do docker funcionará.
fonte
fonte
Talvez isso ajude alguém, pois a mensagem de erro é extremamente inútil e eu já havia passado por todas as etapas de permissão padrão várias vezes sem sucesso.
O Docker ocasionalmente deixa variáveis de ambiente fantasma no local que bloqueiam o acesso, apesar do sistema estar configurado corretamente. Os seguintes comandos do shell podem torná-lo acessível novamente, se você o executou em um ponto e parou de cooperar após uma reinicialização:
Eu tinha uma instalação do docker em funcionamento anteriormente e, após reiniciar o meu laptop, ele simplesmente se recusou a funcionar. Foi corretamente adicionado ao grupo de usuários estivador, tinha as permissões corretas no socket, etc, mas ainda não podia correr
docker login
,docker run ...
etc. Isso fixa-lo para mim. Infelizmente eu tenho que executar isso em cada reinicialização. Isso é mencionado em algumas questões do github também como uma solução alternativa, embora pareça um bug que essa seja uma barreira persistente para corrigir a operação do Docker (nota: eu estou no Arch Linux, não no OSX, mas esse foi o mesmo problema para mim).fonte
Testado no Ubuntu 16.04
fonte
Eu enfrentei o mesmo erro na instância do Amazon EC2. O problema foi corrigido após reiniciar a instância.
fonte
Adicione o usuário atual ao grupo de janelas de encaixe:
sudo usermod -aG docker $(whoami)
fonte
--
versões longas (começando com ) das opções.Para Ubuntu 16.04
/lib/systemd/system/docker.service
Alteração interna do arquivo :com:
/etc/init.d/docker
Alteração interna do arquivo :com:
e, em seguida, reinicie o computador.
fonte