Não é possível conectar-se ao daemon do Docker no unix: /var/run/docker.sock. O daemon do docker está em execução?


172

Apliquei todas as soluções disponíveis na Internet, mas ainda não consigo executar o Docker.

Quero usar o Scrapy Splash no meu servidor.

Aqui estão os historycomandos que corri.

docker run -p 8050:8050 scrapinghub/splash
sudo docker run -p 8050:8050 scrapinghub/splash
sudo usermod -aG docker $(whoami)
sudo docker run -p 8050:8050 scrapinghub/splash
newgrp docker
sudo docker run -p 8050:8050 scrapinghub/splash
reboot
sudo docker run -p 8050:8050 scrapinghub/splash
docker run -p 8050:8050 scrapinghub/splash

Você pode ver que eu tentei reiniciar meu servidor também, mas não ajudou.

ver saída de ps -aux | grep docker

root@mani:/var/www/html# ps aux | grep docker
root      8524  0.0  0.8 127904 13964 ?        Ssl  17:21   0:00 /usr/bin/dockerd --raw-logs
root      8534  0.0  0.3  90588  5012 ?        Ssl  17:21   0:00 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc
root      8543  0.0  0.0   8812   764 pts/1    S+   17:21   0:00 grep --color=auto docker
root     16356  0.0  0.0  17200   964 pts/1    S    17:14   0:00 newgrp docker
root     20080  0.0  0.0  17200   964 pts/1    S    17:06   0:00 newgrp docker
root     30221  0.0  0.0  17200   964 pts/1    S    17:09   0:00 newgrp docker

Se você executar ps aux | grep docker, você vê o processo daemon em execução?
Rome_Leader


@Rome_Leader ver a saída na minha pergunta ...
Umair Ayub

3
tente o seguinte: sudo janela de encaixe serviço restart
Haythem ROUIS

2
você pode ver o status de você janela de encaixe deamon usando este: sudo service docker statusverificar se ele está ativo
Haythem ROUIS

Respostas:


161

Você pode tentar isso:

systemctl start docker

Funcionou bem para mim.

PS: depois, se houver comandos que você não possa fazer sem o sudo, tente o seguinte:

gpasswd -a $USER docker

10
Correndo primeiro comando, eu tenho um erro: Failed to start docker.service: Unit docker.service is masked.Então, eu tive que correr seguinte: systemctl unmask docker.service systemctl unmask docker.socket systemctl start docker.service
Chris Phan

50

Você pode obter esse erro se o docker não desligar corretamente. A resposta a seguir é para o pacote de encaixe do docker.

Execute snap logs dockere procure o seguinte:

Error starting daemon: pid file found, ensure docker is not running or delete /var/snap/docker/179/run/docker.pid

Excluir esse arquivo e reiniciar a janela de encaixe funcionou para mim.

rm /var/snap/docker/<your-version-number>/run/docker.pid
snap stop docker
snap start docker

Certifique-se de substituir <your-version-number>‍com o número da versão apropriada.


Como posso impedir que isso aconteça? Sempre que ligo o PC, preciso remover o docker.pid!
Hamidreza 18/07

47

Apenas corra

sudo dockerd

dockerd é o serviço daemon para contêineres do docker, porque não está sendo executado em segundo plano e não podemos executar nenhuma ação relacionada ao serviço, que precisa ser reiniciada.


10
Este é o único comando que funciona para mim. Eu acho ridículo que alguém tenha que passar por tantos obstáculos para colocar o Docker em funcionamento.
Homunculus Reticulli 17/02/19

3
Isso me dá erroError starting daemon: Devices cgroup isn't mounted
Vineet 'DEVIN' Dev

@fepegar Possivelmente você não está tendo estivador instalados corretamente
Yash Pokar

@YashPokar de fato, acabei reinstalando e agora as coisas funcionam como esperado. Obrigado.
fepegar

Único comando que funciona para mim dentro de um contêiner de docker para iniciar um contêiner de docker. Necessito dele para a criação de código, para criar meu próprio ambiente durante a construção. :-)
Estamos Borg

21

Primeiro, tente com o sudo , pois o usuário atual pode não ter permissões de acesso para se comunicar com o daemon do docker, ou seja, /var/run/docker.sock

Se ainda não estiver funcionando, após a instalação, basta parar o daemon do docker como,

$ sudo service docker stop

E, execute o seguinte comando para iniciar o daemon em segundo plano,

$ sudo nohup docker daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

Para facilitar o trabalho com o Docker, adicione seu nome de usuário ao grupo de usuários do Docker. A adição de um usuário ao grupo pode ser feita com o comando abaixo

$ sudo usermod -aG docker $USER

Além disso, esta etapa é mencionada na documentação oficial das etapas pós-instalação do docker para Linux ( https://docs.docker.com/engine/installation/linux/linux-postinstall/ )

Os usuários do Ubuntu 16.04 podem seguir estas etapas,

Arquivo interno /lib/systemd/system/docker.service change: ExecStart = / usr / bin / dockerd fd: // com ExecStart = / usr / bin / dockerd -H tcp: //0.0.0.0: 2375

Arquivo interno /etc/init.d/docker change:

DOCKER_OPTS = com DOCKER_OPTS = "- H **** tcp: //0.0.0.0: 2375 "

e depois reinicie sua máquina. E comece a brincar com o docker.


1
running sudo nohup docker daemon -H http://tcp://0.0.0.0:2375 () -H http://unix:///var/run/docker.sockbash: syntax error near unexpected token ( ' `
Umair Ayub

1
Estou executando o RedHat Linux
Umair Ayub

Ohh Desculpe. Caracteres extras (), atualizados. Qual versão do RHEL? Basta verificar qual valor você ganha com $ DOCKER_HOST?
mohan08p

O $ sudo systemctl permite que o docker inicie o serviço no momento da inicialização.
mohan08p

Agora estou tentando instalar o Docker em CentOS Linux release 7.3.1611 (Core)... Mas agora o erro é Your Linux kernel version 2.6.32-042stab116.2 is not supported for running docker. Please upgrade your kernel to 3.10.0 or newer.... posso atualizar o kernel usando yum update kernel... ???? A questão é: ele excluirá tudo do meu servidor? É um servidores ao vivo com um site em execução, eu não quero estragar tudo.
Umair Ayub

9

Isso geralmente acontece se você provavelmente não parou o docker.

Resolver

service docker stop
cd /var/run/docker/libcontainerd
rm -rf containerd/*
rm -f docker-containerd.pid
service docker start

depois, "docker run ...." para baixar sua imagem e iniciar o contêiner como de costume


8

Acabei de acertar isso depois de fazer uma nova instalação do DOCKER a partir dos principais documentos. O problema para mim foi que, imediatamente após a instalação, o serviço não está sendo executado.

Esses comandos ajudarão você a garantir que o docker esteja em funcionamento e sendo executado pelo seu comando de execução:

$ sudo service --status-all 
$ sudo service docker start
$ sudo service docker start

7

Estou executando no root e tentei abaixo, funcionou:

service docker start

export DOCKER_HOST="tcp://0.0.0.0:2375"

3
Se isso funcionar no seu host, você não terá efetivamente uma senha root. Qualquer pessoa com acesso a essa porta pode executar comandos como root no seu host.
BMitch 14/05/19

6

Eu tive esse problema depois de fechar a janela de encaixe puxando um contêiner docker pull mongo. No começo, eu estava recebendo erros estranhos, então limpei o docker sudo apt-get purge docker.ioe reinstalei sudo apt-get install docker.io... tudo isso não fez nada. Eu não conseguia nem rodar o contêiner olá mundo. A correção correta para mim pelo menos foi:

systemctl unmask docker.service
systemctl unmask docker.socket
systemctl start docker.service

Depois disso, eu poderia puxar o mongo e dar um olá mundo.

Felicidades!


Eu tive que fazer isso com o Sudo em um Ubuntu 18.04
Basanth


2

use isso na exportação do ubuntu DOCKER_HOST = tcp: // localhost: 2375


Se isso funcionar no seu sistema, você não terá efetivamente uma senha root. Qualquer pessoa com acesso a essa porta pode executar comandos como root no host.
BMitch 14/05/19

2

export DOCKER_HOST = tcp: // localhost: 2375 é perfeito para quem não tem acesso ao sudo e o usuário não tem acesso ao unix: ///var/run/docker.sock


Isso também é útil para quem normalmente não tem acesso root, mas gostaria de se tornar root facilmente em seu host. Qualquer pessoa com acesso a essa porta pode executar comandos como root.
BMitch 14/05/19

@BMitch cuidado para elaborar?
Fran Marzoa

@FranMarzoa de outro usuário em que você não confia, ou mesmo de outro host, você pode executar qualquer docker runcomando com o usuário root dentro do contêiner, privilegiado, com namespaces de host no pid e na rede e montar o sistema de arquivos raiz ok na caixa.
BMitch

2

Eu estava tentando executar o docker (recém-instalado) em uma instância da AWS quando a mensagem aparece. Eu apenas escrevo sudo service docker starte funciona bem para mim.

Veja também AWS com Docker


2

insira a descrição da imagem aqui

Simplesmente esqueço de executar o Docker Desktop no meu mac. Depois de executar o Docker Desktop, você estará pronto.


2

Essa exceção ocorre quando o serviço da janela de encaixe não está em execução ou o usuário conectado não tem permissão para acessar a janela de encaixe e geralmente vem no RedHat.

Usar o comando abaixo deve resolver o problema

início da janela de encaixe do serviço sudo

insira a descrição da imagem aqui


1

Eu tive o mesmo problema para o nó em execução do gitlab CI: lts image:

  • Acabei de reiniciar o daemon do docker e reiniciar o contêiner, funcionou para mim.

1

Isso funcionou para mim, pode funcionar para você se você estiver usando o Ubuntu 16 ou 18 (14 também pode funcionar). Fácil de tentar:

Vá para o Ubuntu Software, digite Docker. Desinstale a janela de encaixe (108 mb), se já estiver pré-instalada. Instalar janela de encaixe Agora execute os comandos e veja se o mesmo erro ocorre

O erro:

insira a descrição da imagem aqui

Depois de seguir os passos acima. insira a descrição da imagem aqui

Como você pode ver, funcionou :)


1

Eu enfrentei o mesmo problema no Linux quando instalei o docker usando o yum (yum install docker).

Resolução: baixe o docker binário do site oficial: instale o docker , descompacte e siga as etapas de instalação.


1

Nenhuma das respostas atuais funcionou para a minha versão deste erro. Estou usando a versão desktop do Ubuntu 18. Os dois comandos a seguir corrigiram o problema.

sudo snap connect docker:home :home

sudo snap start docker



0

Para mim, a solução era simplesmente garantir que eu havia instalado o pacote Docker correto. Por exemplo, para o Ubuntu, os pacotes depreciados são:

  • estivador
  • docker-engine
  • docker.io
  • conter
  • runc

Para instalação, verifique https://docs.docker.com . As instruções são fornecidas para Ubuntu , CentOS , Debian e Fedora no momento da redação deste documento.


Você perdeu algumas etapas: siga este link para assinar o repo. medium.com/@sebagomez/…
Robert

@ Robert, acima também me refiro ao docs.docker oficial para obter a chave PGP. Isso é mais seguro do que os usuários que o copiam deste site ou mídia.
RikH 27/03/19

Eu tentei as etapas do ubuntu e essas não estão funcionando. Precisa do processo de assinatura e do link que forneci.
Robert

@ Robert, obrigado Eu removi minhas instruções incompletas e, em vez disso, consulte a documentação oficial.
RikH 27/03/19

0

Verifique se as informações neste caminho /etc/docker/daemon.json

{
  "registry-mirror": [
    "https://registry.docker-cn.com"
  ],
  "insecure-registries": [
    "192.168.199.100:5000"
  ]
}

excluir

"insecure-registries": [
    "192.168.199.100:5000"
]

e corre bem, digite a descrição da imagem aqui


0

Pode estar relacionado à falta de espaço em disco no disco rígido. Verifique se você tem espaço restante no dispositivo, o Docker não poderá inicializar se não houver mais espaço.


0

Usar docker start <your_container_name>

Em seguida, conecte-se ao banco de dados usando mssql -u <yourUsername> -p <yourPassword>

Se você receber um erro na primeira etapa, a janela de encaixe está em execução e prossiga com a segunda etapa.

Nota: Eu uso o Mac como meu sistema operacional principal e esta pode ser a mesma resposta para sistemas operacionais baseados em Unix. Se não! Desculpe adiantado.


0

Também recebi a mensagem de erro abaixo, depois de instalar a janela de encaixe e executando: docker run hello-world

Não é possível conectar-se ao daemon do Docker no unix: /var/run/docker.sock. O daemon do docker está em execução?

Aqui está uma solução, o que funcionou para mim. Ambiente - Windows 10 (Não se esqueça de ativar no Windows: Configurações> Atualização e segurança> Modo de desenvolvedor) - Ubuntu 18.04 LTS - Docker Desktop versão 2.3.0.2 (45183) - Ativar no Docker Desktop: expor daemon no tcp: // localhost: 2375 sem TLS - O Docker Desktop também deve estar em execução (conectado ao Docker Hub ... basta fazer login)

Após instalar o ubuntu, atualize o repositório

sudo apt-get update

Para usar um repositório sobre HTTPS

sudo apt-get install \ apt-transport-https \ ca-certificados \ curl \ gnupg-agent \ software-properties-common

Adicione a chave oficial do Docker GPG:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Certifique-se de ter a chave agora com a impressão digital

sudo apt-key impressão digital 0EBFCD88

Atualize o repositório

sudo apt-get update

Atualize o repositório do docker

sudo add-apt-repository \ "deb [arch = amd64] https://download.docker.com/linux/ubuntu \ $ (lsb_release -cs) \ stable"

Atualize o repositório novamente

sudo apt-get update

Comando para instalar o docker na versão: 5: 18.09.9 ~ 3-0 ~ ubuntu-bionic

Para instalar o docker-ce = 5: 18.09.9 ~ 3-0 ~ ubuntu-biion docker-ce-cli = 5: 18.09.9 ~ 3-0 ~ ubuntu-bionic containserd.io

Comando para definir o DOCKER_HOST

exportar DOCKER_HOST = "tcp: //0.0.0.0: 2375"

Nota: coloque o comando acima no seu perfil para começar com o comando ubunto ex: echo "export DOCKER_HOST = 'tcp: //0.0.0.0: 2375'" >> ~ / .bashrc

Adicionar usuário ao grupo de janelas de encaixe

sudo usermod -aG docker $ USER

Reinicie o ubuntu

(Feche e abra a janela do ubuntu novamente)

Testando a instalação (NÃO use mais sudo antes dos comandos do docker (isso causará um erro), o usuário "root" já foi incluído no grupo do docker)

docker run olá mundo

A mensagem abaixo deve ser exibida

Olá do Docker! Esta mensagem mostra que sua instalação parece estar funcionando corretamente.

Nota: se falhar, execute o comando novamente: export DOCKER_HOST = "tcp: //0.0.0.0: 2375"

exportar DOCKER_HOST = "tcp: //0.0.0.0: 2375"

Referência: https://docs.docker.com/engine/install/ubuntu/ Sessão: INSTALAR DOCKER ENGINE

Para outras versões da janela de encaixe que podem ser instaladas com o ubuntu, consulte o repositório usando o comando abaixo:

apt-cache madison docker-ce

Em seguida, instale a versão desejada da janela de encaixe:

sudo apt-get install docker-ce = docker-ce-cli = container.io


0

Para todos que estão tendo problemas com o Docker no momento da instalação.

Um erro que indica uma falha no serviço docker, execute os comandos abaixo.

$ sudo apt update

$ sudo apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common

$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"

$ sudo apt update

$ apt-cache policy docker-ce

$ sudo apt install docker-ce

-1

Esse problema pode ser resolvido permanentemente executando 1. systemctl enable docker 2. service docker start


Parece que eu preciso iniciar o serviço docker service start dockersempre que eu reiniciar o computador.
Pran Kumar Sarkar

@PranKumarSarkar Não se você executar o "sudo systemctl enable docker"
GabrielBB
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.