Quando você vir a mensagem de erro “O daemon do Docker não conseguiu se conectar a 'unix:///var/run/docker.sock'.Isso geralmente significa que comandos como `docker run` ou `docker ps` não funcionarão. Como resultado, você não poderá interagir com os contêineres Docker. Esse erro ocorre porque o cliente Docker não consegue se conectar ao daemon Docker, que é o programa subjacente que gerencia todas as operações do Docker no seu computador.

erro de conexão do Docker

O motivo mais comum para esse problema é que o serviço Docker não está em execução no seu sistema. Outras causas possíveis incluem a falta de permissões necessárias para acessar o socket do Docker, problemas na instalação do Docker ou problemas com o próprio arquivo `docker.sock`.

Agora que você tem uma ideia das possíveis causas, vamos passar para algumas soluções práticas.

1. Inicie o serviço Docker usando o systemctl

A primeira coisa a verificar é se o Docker está em execução. A ferramenta `systemctl` permite iniciar e gerenciar serviços do sistema. Se o Docker não estiver ativo, o cliente Docker não conseguirá se comunicar com o processo principal do Docker, causando esse erro. Executar o comando `systemctl start docker` iniciará o serviço Docker e deverá resolver o problema se ele estiver simplesmente inativo.

  1. Abra o terminal Primeiro, execute o seguinte comando para Mostrar Docker:
    sudo systemctl unmask docker

    Se você tentar iniciar o Docker enquanto ele estiver mascarado, verá o erro "Falha ao iniciar docker.service: Unidade mascarada". O mascaramento é uma maneira mais eficaz de interromper um serviço — ele impede que o serviço seja iniciado completamente. Se você quiser ver o status de todos os arquivos de unidade em seu sistema, use [nome do método/ferramenta]. arquivos de unidade de lista systemctl.

  2. Assim que o Docker se tornar Não oculto, você pode Iniciar o daemon do Docker Ao usar esse comando, o daemon do Docker atua como o serviço de back-end que gerencia imagens e contêineres e lida com as solicitações da API do Docker.
    sudo systemctl iniciar janela de encaixe

    Iniciar o serviço Docker

  3. Para Verifique se o Docker está funcionando.Digite este comando. Ele exibirá o status atual do seu serviço Docker:
    janela de status do sudo systemctl

    status do serviço Docker

  4. Como você pode ver na imagem acima, agora você deve perceber que O Docker está ativo e funcionando..

2. Limpe o erro “Docker pull failed” e inicie o serviço Docker.

Às vezes, se um comando `docker pull` falhar, pode deixar para trás arquivos incompletos que impedem o daemon do Docker de iniciar corretamente. Remover esses arquivos remanescentes permite que o Docker reinicie o serviço. Reiniciar o serviço do Docker em seguida ajuda a resolver quaisquer problemas que possam ser causados ​​por arquivos corrompidos ou presos.

  1. Abrir Periférico Digite os seguintes comandos:
    sudo systemctl unmask docker.service sudo systemctl unmask docker.socket sudo systemctl start docker.service

Iniciar o serviço Docker

Se o erro persistir após a execução desses comandos, você deve excluir Os arquivos restantes no diretório ContêinerEm seguida, tente iniciar o Docker novamente. O Containerd, que passou a fazer parte do Docker na versão 1.11, ajuda a gerenciar contêineres Docker diretamente em segundo plano.

  • Permaneça no Terminal e execute estes comandos — observe que você precisará de A senha do usuário root:
    sudo su service docker stop cd /var/run/docker/libcontainerd rm -rf containerd/* rm -f docker-containerd.pid service docker start

Reiniciando o serviço Docker

3. Inicie o serviço Dockerd (Docker Daemon) diretamente.

O Dockerd é o programa principal (oculto) que roda em segundo plano e gerencia todas as tarefas do Docker. Em alguns casos, executar o Dockerd diretamente pode ajudar, especialmente se o comando `systemctl` não funcionar no seu sistema.

  1. Abrir terminal Use este comando para iniciar diretamente o daemon do Docker:
    sudo dockerd

Inicie o Dockerd

4. Inicie o Docker usando o comando Service.

Iniciar o Docker manualmente garante que o serviço esteja em execução. Você pode usar o comando `sudo service docker start` para iniciar o Docker, o que é útil caso ele não inicie automaticamente após a reinicialização do sistema.

  1. Abra o Terminal e execute:
    sudo service --status-all sudo service docker start

Iniciar o serviço Docker

5. Iniciando um serviço Docker usando o Snap

Se você instalou o Docker usando o Snap, precisa garantir que o serviço Docker gerenciado pelo Snap esteja funcionando. O Snap às vezes exige que você inicie ou conecte serviços manualmente. Use `sudo snap start docker` para verificar se o daemon do Docker está funcionando conforme o esperado.

  1. Abra o Terminal e execute este comando para Iniciar o Docker:
    sudo snap start docker

    Iniciar o Docker

  2. Para verificar se o Docker foi iniciado corretamente usando o Snap, utilize:
    sudo snap serviços
  3. Isso levará a Liste todos os serviços Snap atualmente em operação.:
    Serviços Snap
  4. Se o Docker ainda não tiver iniciado, tente Conectando o plugin docker:homeO que nem sempre ocorre de conexão automática. Nesse caso, reinicie o Docker.
  5. Abra o Terminal e execute o seguinte comando:
    sudo snap connect docker:home :home sudo snap start docker

    Iniciar o Docker

6. Inicie o Docker para usuários sem privilégios de root.

Esse erro também pode ocorrer se você não tiver permissões suficientes para acessar 'unix:///var/run/docker.sock'. Você pode contornar isso temporariamente exportando a variável de ambiente do Docker para usar a interface de rede local na porta 2375.

  1. Abra o Terminal e execute:
    export DOCKER_HOST=tcp://localhost:2375

    Exportação do host Docker

7. Reinstale o Docker

Às vezes, problemas com a instalação do Docker — como arquivos corrompidos ou configurações incorretas — podem impedir que o daemon do Docker funcione corretamente. Reinstalar o Docker restaura tudo ao estado padrão e pode corrigir problemas causados ​​por configurações defeituosas ou conflitantes.

  1. Após reinstalar o Docker, verifique se o serviço está em execução usando o seguinte comando:
    sudo service docker start

    Isso iniciará o Docker e geralmente resolve problemas quando o programa não está ativo, especialmente após a reinicialização do computador ou se o Docker não iniciar automaticamente.

  2. Como o daemon do Docker controla todos os contêineres e imagens, garantir que ele esteja em execução restaura a conexão entre o cliente Docker e o daemon, o que pode corrigir erros causados ​​por interrupções ou inatividade do serviço.