problema com o docker

32

Estou tentando aprender sobre o "Docker" no ubuntu 15.04.

Quando eu dou algum comando usando o docker como "docker run image", ele recebe o seguinte erro:

FATA[0000] Post http:///var/run/docker.sock/v1.17/containers/create: dial unix /var/run/docker.sock: no such file or directory. Are you trying to connect to a TLS-enabled daemon without TLS?

Eu não entendo o que isso significa.

rishi kant
fonte
5
Eu estava recebendo essa mensagem de erro e iniciei o daemon com sudo service docker start. Então eu pude correr sudo docker run hello-world. Boa sorte.
Shell # 6/15

Respostas:

31

Há dois motivos possíveis para você receber esse erro:

  1. O daemon do Docker não está em execução. Você pode verificar isso com sudo /etc/init.d/docker status.

  2. O daemon do Docker está em execução, mas está configurado para não atender /var/run/docker.sock. Você pode verificar /etc/default/dockerse alguma -Hopção está especificada em DOCKER_OPTS.

Andreas Veithen
fonte
3
+1. Eu só tinha que uso $ sudo service docker statusdesde que cheguei$ sudo /etc/init.d/docker status * Docker is managed via upstart, try using service docker status
Isaacs
Após a execução sudo /etc/init.d/docker status, reconheci que o serviço de docker estava inoperante. Eu corro sudo /etc/init.d/docker start, então pude executar minha imagem do Docker.
Halil
Parece que / etc / default / docker não é mais útil no systemd (Ubuntu 16.04+). BTW no sistema a maneira canônica de verificar o status do daemon seria sudo systemctl status docker.
Pablo A
38

Depois de instalar o Docker, você será solicitado a adicionar seu usuário ao grupo do Docker. Simplesmente execute o comando mostrado:

sudo usermod -aG docker $USER

Você precisará fechar sua sessão e efetuar login novamente para que a alteração entre em vigor.

Samoht
fonte
provavelmente o mais simples. Eu não sei se funciona, embora (usado @ decebal) resposta.
Yair Daon
Eu não recebi esse prompt. Estou no Raspberry Pi.
IgorGanapolsky
Para adicionar-se ao grupo de janelas de encaixe mais tarde, execute sudo usermod -a -G docker <user>. Veja aqui para mais informações.
Hugh W
3
Ênfase em "encerre sua sessão" - obrigado!
Dolan Antenucci
No Ubuntu 18.04 com Gnome, tive que reiniciar o sistema para que isso funcionasse. O logoff e o logon novamente não funcionaram: /
Zoltán
15

Tente reiniciar o sistema operacional após a instalação do docker para aplicar permissões de grupo, se o usuário ingressou no grupo do docker.

Atualizar:

Ao instalar o Docker no ubuntu 14.04, o instalador recomenda o que o usuário adiciona ao grupo Docker para acessar o Serviço Docker.

Olhe para a

O daemon do docker se liga a um soquete Unix em vez de uma porta TCP. Por padrão, o soquete Unix pertence ao usuário root e outros usuários podem acessá-lo com o sudo. Por esse motivo, o docker daemon sempre é executado como usuário root. Para evitar ter que usar sudo ao usar o comando docker, crie um grupo Unix chamado docker e adicione usuários a ele. Quando o daemon do docker é iniciado, torna a propriedade do soquete Unix lida / gravável pelo grupo do docker.

fonte: https://docs.docker.com/installation/ubuntulinux/#create-a-docker-group

MURATSPLAT
fonte
2
Você deve explicar por que isso vai ajudar.
precisa saber é o seguinte
1
@guntbert tenho atualizar a minha resposta ..
MURATSPLAT
@MURATSPLAT, QBI, gunbert Graças i encontrar a solução
rishi Kant
Para tornar a permissão do grupo alterar o efeito. Você não precisa reiniciar. logout é suficiente.
Tim Wu
@TimWu No Ubuntu 18.04 com Gnome, eu tive que reiniciar o sistema - simplesmente sair e voltar a trabalhar não funcionava: / /
Zoltán
10

tente usar sudo docker imagespara verificar se há um contêiner chamado <image>no seu host.

A execução docker run <image>iniciará um contêiner chamado <image>no computador host; se o computador host não tiver esse contêiner, o docker puxará automaticamente um contêiner denominado '' do hub do repositório, exatamente como você está executando docker pull <image>. Se ainda não conseguir encontrar uma imagem chamada '', mostrará esta mensagem de erro.

você pode tentar substituir para hello-worldver se o docker está funcionando no seu computador.

sudo docker run hello-world

Além disso, você deve verificar se deve usar sudo.

realhu
fonte
2
Se o problema era que o OP não estava usando o sudo, a mensagem de erro teria sido "permissão negada" em vez de "nenhum arquivo ou diretório".
Andreas Veithen
1
Sim, você está certo. Eu tentei isso, se o usuário não tem a permissão a mensagem de erro seria:FATA[0000] Get http:///var/run/docker.sock/v1.18/containers/json: dial unix /var/run/docker.sock: permission denied. Are you trying to connect to a TLS-enabled daemon without TLS?
realhu
2
tente conceder permissõessudo usermod -a -G docker ec2-user
AB
4

Encontrei este artigo útil: https://docs.docker.com/articles/systemd/ ; Eu o executei em vários ambientes e trabalhei, espero que ajude você também

Decebal
fonte
As respostas somente de link não são consideradas aceitáveis. Por favor, especifique sua resposta para ser completa.
Flimzy
2
Embora isso possa teoricamente responder à pergunta, seria preferível incluir aqui as partes essenciais da resposta e fornecer o link para referência.
Mitch
1
Esse link systemd parece estar morto. Aqui está outro link docs.docker.com/engine/admin/systemd
wsams 15/03
2

Recebi uma mensagem semelhante ao tentar extrair uma imagem. Acabei de fazer sudo sue consegui extrair a imagem com êxito.

Omar Ahmed
fonte
2
Bem-vindo ao Ask Ubuntu! Eu recomendo editar esta resposta para expandi-la com detalhes específicos sobre como fazer isso. (Consulte também Como escrevo uma boa resposta? Para obter conselhos gerais sobre que tipo de respostas são consideradas mais valiosas no Ask Ubuntu.) Lembre-se, porém, de que executar o Docker como superusuário já foi sugerido várias vezes.
David Foerster
eu tenho a solução do meu problema.
precisa saber é o seguinte