Compose: ERRO: Não foi possível conectar ao daemon do Docker em http + docker: // localunixsocket - está em execução?

Criado em 24 nov. 2016  ·  204Comentários  ·  Fonte: docker/compose

Sei que existe outro problema do mesmo tipo, mas o outro está encerrado e tentei todas as soluções propostas, mas sem resultado.

Ainda não funciona:

matteo<strong i="8">@ubuntuDockerMB</strong>:~/wordpress-docker$ sudo docker -v
Docker version 1.12.3, build 6b644ec
matteo<strong i="9">@ubuntuDockerMB</strong>:~/wordpress-docker$ sudo docker-compose up
ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?

If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
matteo<strong i="10">@ubuntuDockerMB</strong>:~/wordpress-docker$ sudo service docker start
start: Job is already running: docker
matteo<strong i="11">@ubuntuDockerMB</strong>:~/wordpress-docker$ echo $DOCKER_HOST

matteo<strong i="12">@ubuntuDockerMB</strong>:~/wordpress-docker$ DOCKER_HOST=127.0.0.1
matteo<strong i="13">@ubuntuDockerMB</strong>:~/wordpress-docker$ echo $DOCKER_HOST
127.0.0.1
matteo<strong i="14">@ubuntuDockerMB</strong>:~/wordpress-docker$ sudo docker-compose up
ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?

If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
matteo<strong i="15">@ubuntuDockerMB</strong>:~/wordpress-docker$ unset DOCKER_HOST
matteo<strong i="16">@ubuntuDockerMB</strong>:~/wordpress-docker$ sudo docker-compose up
ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?

If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
matteo<strong i="17">@ubuntuDockerMB</strong>:~/wordpress-docker$ groups matteo
matteo : matteo adm cdrom sudo dip plugdev sambashare lpadmin docker

  • Eu faço parte do grupo docker

  • Também estou usando sudo

  • O processo está ativo

  • A variável DOCKER_HOST não está definida ou 127.0.0.1

  • Reconectou o usuário

  • Reiniciou o servidor

Acho que tentei todas as configurações possíveis, certo?


Especificações:

  • SO: Ubuntu 14.04.04 no Virtualbox no Windows 10 Home.

  • Docker versão 1.12.3, compilação 6b644ec


Obrigado!

kinquestion

Comentários muito úteis

Você já tentou sem sudo ? Você não deveria precisar e pode estar bagunçando as coisas no seu caso. Além disso, o que você vê quando executa docker info ?

Todos 204 comentários

Você já tentou sem sudo ? Você não deveria precisar e pode estar bagunçando as coisas no seu caso. Além disso, o que você vê quando executa docker info ?

Tente executar dockerd ou sudo dockerd se necessário primeiro para iniciar o daemon. Se você começar dockerd com sudo você pode querer executar docker-compose up com sudo também. caso contrário, está bem.

@ shin- Olá! Já fiz isso com sudo e também com root ( sudo su ).

matteo<strong i="7">@ubuntuDockerMB</strong>:~/wordpress-docker$ sudo docker-compose up
ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?

If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.

aqui está a operação feita como root

root<strong i="11">@ubuntuDockerMB</strong>:/home/matteo/wordpress-docker# docker-compose up
ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?

If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
root<strong i="12">@ubuntuDockerMB</strong>:/home/matteo/wordpress-docker#

este é o resultado de docker info

root<strong i="17">@ubuntuDockerMB</strong>:/home/matteo/wordpress-docker# docker info
An error occurred trying to connect: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.24/info: read unix @->/var/run/docker.sock: read: connection reset by peer

@harshajayaweeraXHJ

dockerd não funciona, mas sudo service docker start funciona como esperado

matteo<strong i="25">@ubuntuDockerMB</strong>:~/wordpress-docker$ sudo dockerd
INFO[0000] libcontainerd: new containerd process, pid: 4039
WARN[0000] containerd: low RLIMIT_NOFILE changing to max  current=1024 max=4096
INFO[0001] [graphdriver] using prior storage driver "aufs"
FATA[0001] Error starting daemon: layer does not exist

PS:

@ shin- &

Você precisa exportar a variável para que ela esteja disponível em processos filho:

$ export DOCKER_HOST=127.0.0.1

Embora isso não resolva completamente o seu problema ...

Encontrei esse erro porque tolamente ignorei os pré-requisitos do Ubuntu.

obrigado @jamethy , fiz tudo certo e entendo

matteo<strong i="7">@ubuntuDockerMB</strong>:~/wordpress-docker-tut$ docker-compose up -d
Traceback (most recent call last):
  File "<string>", line 3, in <module>
  File "compose/cli/main.py", line 65, in main
  File "compose/cli/main.py", line 114, in perform_command
  File "compose/cli/command.py", line 36, in project_from_options
  File "compose/cli/command.py", line 111, in get_project
  File "compose/cli/command.py", line 83, in get_client
  File "compose/cli/docker_client.py", line 74, in docker_client
  File "site-packages/docker/client.py", line 59, in __init__
  File "site-packages/docker/utils/utils.py", line 438, in parse_host
docker.errors.DockerException: Bind address needs a port: 127.0.0.1
docker-compose returned -1

Tendo o mesmo problema agora, também tentando instalar o Wordpress no docker. Tentei de tudo, mas ainda não consigo conectar. O daemon do Docker não está em execução ... Vou tentar novamente

para mim o problema continua aí:

Bind address needs a port: 127.0.0.1

mas este número deve ser criado pelo próprio docker

Tenho o mesmo problema do autor da postagem original e tentei todas as sugestões acima.

Parece que às vezes o docker "morre" e não está funcionando e, em outras ocasiões, continua funcionando. Percebi isso ao tentar executar o comando docker info e obter um erro sobre o docker não estar em execução. Usar service docker start me permitiu executar o comando info. Isso é o que eu tenho:

Containers: 1
Running: 0
Paused: 0
Stopped: 1
Images: 1
Server Version: 1.12.5
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 3
Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: host bridge overlay null
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: apparmor seccomp
Kernel Version: 4.4.0-45-generic
Operating System: Ubuntu 16.04.1 LTS
OSType: linux
Architecture: x86_64
CPUs: 24
Total Memory: 31.42 GiB
Name: ayn
ID: 7TGC:G5WQ:6IYF:XWMH:XF3N:VXU7:SLZB:IHRN:T4FL:D35I:5JUA:H4S5
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
Insecure Registries:
127.0.0.0/8

@ matteo-bombelli Este erro é bastante claro, você precisa especificar uma porta. Faça export DOCKER_HOST=127.0.0.1:2375 vez disso.

@ matteo-bombelli
Eu tive o mesmo problema.
Você precisa reiniciar o docker.
$ service docker restart
Eu resolvi isso com isso.

alguém pode consolidar a solução para este problema em etapas?

Oi. Eu apoio este último comentário, estou tendo o mesmo problema.

Estou tendo o mesmo problema.

docker ps funciona.

docker-compose build (com a versão 2) funciona!

docker-compose build (com a versão 3) dá este erro: /

@furkanmustafa @ shashijais789 @lalitkumarj Seria melhor se você criasse um novo problema com todas as informações. Existem muitos motivos que podem causar uma falha na conexão com o motor, desde a rede até a configuração e o motor potencialmente travando / parando. Certifique-se também de incluir os logs do mecanismo com a sinalização de depuração -D .

mesmo problema. funciona com a versão 2, recebo este erro com a configuração da versão 3.

as etapas a seguir resolveram o problema para mim.

remover docker:
$ sudo apt-get remove docker docker-engine
reinstalar com
curl -sSL https://get.docker.com/ | sh

adicionar usuário a um grupo:
sudo usermod -aG docker user

Talvez esse erro possa ser exibido se uma das imagens falhar na construção por qualquer motivo, não necessariamente relacionado ao daemon do docker. Por exemplo, consegui depurar isso tentando construir cada serviço usando o Docker.

Meu arquivo docker-compose.yml contém:

version: '2'

services:
  # Drupal server
  drupal:
    build:
      context: .
      dockerfile: "Dockerfile-drupal"
  mysql:
    ...

Chamar docker-compose build resulta em:

Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?

Então, tentei usar o Docker para construir cada arquivo individualmente:

docker build -f="Dockerfile-drupal" .

Isso me deu um erro mais útil:

Error checking context: 'no permission to read from some/data/directory'

Corrigir esse erro e garantir que posso construir o Dockerfile-drupal resultou em docker-compose build funcionando bem.

Talvez o código que gera o erro possa ser alterado para algo como:

Couldn't build the services.

 * Make sure you can build your Docker images using "docker build ...".
 * Make sure the Docker daemon is running.
 * If the Docker daemon is at a non-standard location, specify the URL with the DOCKER_HOST environment variable. Currently using http+docker://localunixsocket.

Todos necessários de:
1) apt-get remove e reinstala usando curl como Kirill-Babkin sugere (e reinicie o socker para ser seguro)
2) adicionar usuário ao grupo docker usando usermod -aG, logout e login
3) undefine DOCKER_HOST (conforme sugerido por rkazak em https://forums.docker.com/t/docker-commands-require-sudo/12987/2) que eu havia definido anteriormente usando> export DOCKER_HOST = 127.0.0.1: 2375 como sugerido por jamethy e shin
Isso foi em um RPi 3B. Depois de tudo isso, o docker agora está funcionando. Existe alguma chance de isso ser limpo para que outras pessoas não tenham que passar por essa experiência dolorosa, já que experiências como esta janela de encaixe foi projetada para consertar? Apenas uma sugestão.

No meu caso, o proxy de LAN (definido em Opções da Internet - Estou no Windows) impediu docker-compose de se conectar à VM (com mecanismo docker) em VirtualBox Host-Only Network - desativar o proxy resolveu um problema.

No Ubuntu 16.04 isso funcionou para mim:
sudo service docker start && docker-compose up -d

Não tenho certeza do que aconteceu, reiniciei meu PC e ele começou a funcionar !! : nerd_face:

@ ssi-anik isso é ciência da computação 😄

Eu simplesmente tive o mesmo problema. Descobri que, por algum motivo, meu usuário não foi adicionado ao grupo de segurança do docker, por sua vez, não me permitindo permissão no soquete unix do docker e me dando _ERRO: Não foi possível conectar ao Docker daemon em http + docker: // localunixsocket - está em execução .

Adicionar o grupo docker ao meu usuário atual e, em seguida, desconectar e conectar novamente corrigiu tudo para mim:
sudo usermod -aG docker $USER

Isso estava falhando em uma determinada etapa de compilação para mim, tentei executar docker build . no mesmo diretório do Dockerfile e descobri que um dos arquivos que eu estava tentando COPY tinha problemas de permissão.

Executar sudo chmod 755 -R . corrigiu meu problema.

Conforme mencionado por @ChrisPappalardo em
https://github.com/docker/compose/issues/1214
verifique se há permissões de propriedade de arquivo em seus diretórios de construção. Como o processo de construção do contêiner é feito no contexto do usuário atual, ter um diretório inacessível dentro da árvore pertencente ao root pode levar a um erro, resultando nesta mensagem.

No meu caso, a solução de @ alberto56 funcionou perfeitamente, foi um problema de permissão com um dos volumes que foi montado em um dos meus serviços. Não tenho certeza de como a propriedade foi alterada em primeiro lugar, mas fazer o manual docker build -f myDockerfile . me ajudou a encontrar meu problema.

Quando fiz um ls -l o diretório pertencia ao grupo 999 e docker , a parte estranha é que nem era pela imagem que eu estava tentando construir, era um serviço separado.

Encontrei este erro porque montei um volume parecido, durante a depuração, e esqueci de limpar.
volumes:
- ./itsLog:/var/log/itsLog

quando tentei construir o Dockerfile, ele deve ter recebido uma "permissão negada" ao tentar adicionar o caminho restrito.

A descrição do erro é um tanto enganosa, mas por outro lado, faz sentido.

Acabei de alterar o proprietário do arquivo /var/run/docker.sock para o usuário atual e está tudo bem.
Parece que docker-compose não tinha permissão para acessar /var/run/docker.sock.

A descrição do erro é um tanto enganosa

Uma vez que já é tão pouco informativo, por que não se comprometer com isso e apenas imprimir "Não"? / s

No meu caso, tive que revisar o syslog para ver que o daemon do Docker rejeitou a especificação de compilação porque havia letras maiúsculas na string da tag.

Essa mensagem de erro é uma declaração geral e provavelmente deve ser documentada (em vez de espalhada por Stack Overflow e questões de github de projetos não relacionados) ou expandida.

O comentário de @ alberto56 me ajudou. Tive o mesmo problema. Obrigado!
O contêiner anterior que eu "volumizei" havia criado arquivos Python compilados; *.pyc . Esses não estavam acessíveis ao meu usuário.
Problema e solução copiados acima:

Chamar docker-compose build resulta em:
Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?

Ligue para o docker diretamente:
docker build .

O que revela a verdadeira causa:
Error checking context: 'no permission to read from '/home/user/dev/project/app/utils.pyc''.

As permissões de arquivo eram:
-rw-r----- 1 root root 11K Nov 29 16:32 utils.pyc
E a solução foi excluir esses arquivos:
sudo rm app/*.pyc

Ei pessoal,

Depois de atualizar para a versão 17.12 do docker e iniciar o serviço do docker, meu problema foi resolvido.

[] # service docker start
13 Redirecionando para / bin / systemctl start docker.service
# sudo docker-compose up -d

Precisamos atualizar a versão do docker para que a composição funcione.

Saudações,
Prasad RVS

serviço docker start
Redirecionando para / bin / systemctl start docker.service
[ root @ kammu02-I9084 LDDS] # sudo docker-compose up -d
Criação de rede "ldds_default" com o driver padrão
Criação de volume "ldds_couch-data" com driver padrão
Extraindo o couchdb (isl-dsdc.ca.com:5000/analytics/lddscouchdb:2.1.8c.109) ...
2.1.8c.109: Puxando de analytics / lddscouchdb
dd6405a9d644: Extração completa
10f659fc3a7e: Extração completa
8a0ce719aeb8: Puxe completo
fc23f8fbeac2: Pull concluído
5f02dd664e80: Extração completa
f38b89a75914: Puxar completo
94add1a2ec1e: Pull completo
e7db1a0942ee: Pull completo
87b0136db4b9: Extração completa
be9ceeef7cb5: Puxar completo
aed07b38ec55: Puxado completo
fc4632d89301: Extração completa
6152a07afebb: Extração completa
946862fd0151: Extração completa
43408ca5f730: Puxe completo
Resumo: sha256: d3c13f08a4c9c3ed450325aef2dbe97abf0a55c13e9e2005109c05c713491fb3
Status: imagem mais recente baixada para isl-dsdc.ca. com: 5000 / analytics / lddscouchdb : 2.1.8c.109
Extraindo ldds-web (isl-dsdc.ca.com:5000/analytics/lddscdb:2.1.8c.109) ...
2.1.8c.109: Extração de analytics / lddscdb
dd6405a9d644: Já existe
10f659fc3a7e: Já existe
8a0ce719aeb8: Já existe
eebc892936a1: Extração completa
3c8dd6086ddb: Extração completa
73c1dfebea61: Extração completa
9fb23fd0d390: Extração completa
f8943ba49c47: Puxe completo
a89ff5b6e340: Puxe completo
02615a9d0e05: Extração completa
e129088bf324: Extração completa
bf0ba8d71b09: Extração completa
083300d85e61: Extração completa
5deacfd6cb23: Extração completa
220cda5539ae: Puxe completo
8cdee22c663b: Puxe completo
d76b24524469: Extração completa
9c5ade36643f: Puxe completo
c7ca782f404c: Extração completa
6a7bbcfb0b95: Extração completa
Resumo: sha256: e2cb43e6b22ab344d7fc17f38e49caa3e295ef0efdfa43bc77ce671e0f172168
Criando ldds_couchdb_1 ... concluído
Criando ldds_couchdb_1 ...
Criando ldds_ldds-web_1 ... concluído

Encontrei o erro abaixo,
"não foi possível conectar ao Docker daemon em http + docker: // localunixsocket - ele está em execução?"

Verifique se é um problema de permissão, execute "sudo docker ps" é executado sem este erro e "docker ps" é executado com este erro e, em seguida, execute um problema de permissão.

Experimente estas etapas de pós-instalação do docker. Pode ser necessário adicionar o "usuário" ao grupo do docker.
https://docs.docker.com/engine/installation/linux/linux-postinstall/

Isso funcionou para mim.

Olá a todos - isso também acontece na minha máquina. O estranho é que não fiz nenhuma alteração ou atualização e isso simplesmente começou a acontecer.

@manjukori, isso acontece comigo mesmo que eu esteja no grupo docker - ainda executando o mesmo comando em sudo funciona! Por um lado, parece que você está certo de que é algum tipo de problema de permissão, mas sou um membro do grupo docker ! Tão estranho...

Ok, todos encontraram o problema! No meu caso, estou usando docker-compose que monta um diretório root -owned em um dos contêineres. Por alguma razão, isso impediu a inicialização de docker-compose (que executa docker build ).

Assim que removi esse diretório, tudo funcionou como antes (embora eu não saiba por que funcionou antes, na verdade).

Você pode querer verificar se há algo semelhante em sua extremidade também.

chmod 777 it

Seu usuário precisa estar no grupo "docker" para executar docker-compose sem sudo. Basta adicionar este grupo à sua conta, sair e fazer login novamente. Corrigido isso para mim no Ubuntu e Mac OS.

@jhnoor obrigado! Funcionou para mim
sudo chmod 755 -R .

Eu gostaria de reiterar um dos comentários mais úteis sobre o outro problema, que disse que docker-compose --verbose up[|build] o ajudará a chegar ao fundo do seu problema. No meu caso, a mensagem de erro do docker-compose era enganosa - eu só precisava atualizar do docker 1.10 (antigo) para 1.12.

A verbosidade revelou isso:
docker.errors.APIError: 400 Erro do cliente: solicitação incorreta ("o cliente é mais recente que o servidor (versão da API do cliente: 1.24, versão da API do servidor: 1.22)")

No meu caso, apenas um único comando foi suficiente para corrigir o problema: sudo usermod -aG docker $USER (quando $ USER é o usuário conectado no momento). Com isso, consegui executar com sucesso docker-compose run ... sem sudo do shell de usuário $USER . (Obrigado, @ Kirill-Babkin: bolo :).

  • Ubuntu 16.04.3 (nova instância super limpa no AWS)
  • Docker 17.12.1-ce (instalado no apt, seguido de Get Docker CE para Ubuntu )

As respostas corretas são de @manjukori e @yoloseem; a única coisa que eu enfatizaria é usar a variável env $ USER para generalizar a instrução sudo usermod -aG docker $USER (assumindo que você está conectado ao shell como o usuário que precisa gerenciar o docker). Para outros detalhes importantes sobre a configuração do docker, consulte o link postado acima https://docs.docker.com/install/linux/linux-postinstall/.

@ ramblinwreck35 Editou meu comentário conforme você apontou. : +1:

Para mim, era meu usuário não ser membro do grupo docker. Resolver...
sudo usermod -aG docker ${USER}
Em seguida, saia e volte a entrar ou sudo su - ${USER} para receber a configuração atualizada no seu terminal

systemctl restart docker
Resolva

Isso se deve à permissão, mesmo após adicionar seu usuário ao grupo docker. reinicie o grupo ou recarregue a permissão.

Eu usei sudo. problema resolvido.

Não tenho certeza se meu problema era o mesmo, mas postarei minha solução aqui caso outra pessoa tenha o mesmo problema e encontre este tópico.

No meu caso, esqueci de adicionar alguns diretórios ao .dockerignore . Eu acho que eram muitos dados para o docker deamon, porque funcionou depois de excluir alguns diretórios de dados.

@harwood e eu estávamos investigando esse problema em nosso repositório e vimos que na verdade é devido a um nome de imagem docker malformado definido em image - tínhamos uma imagem com letra maiúscula. Também estávamos fornecendo build: ./ . Quando removemos build: ./ vimos uma nova mensagem de erro: invalid reference format: repository name must be lowercase . Espero que isso ajude alguém a rastrear este problema.

Oi,

Meu problema foi resolvido com as seguintes etapas:

  1. Pare o serviço docker
  2. Adicione o usuário que você está usando para executar o comando docker-compose ao grupo docker com o seguinte comando: usermod -aG docker NAME_OF_USER (CentOS 7)
  3. Inicie o serviço docker

Você tem configuração de serviços de banco de dados como esta?

volumes `` `:
- ./db/data:/var/lib/mysql


When i input `docker-compose build` with db server ,I got this error. 
So, I input `sudo chown -R $USER:$USER /db/data` in order to got data permission.And I tried "docker-compose build" without the error.

docker-compose.yml

versão: '3'
Serviços:
db:
Construir:
./db
comando: mysqld --default-authentication-plugin = mysql_native_password
portas:
- "3306: 3306"
volumes:
- ./db/data:/var/lib/mysql
env_file:
- mysql.env
privilegiado: verdadeiro
`` `

Reiniciar o docker também funcionou para mim.

Eu resolvi isso mudando o proprietário de root para mim para /var/run/docker.sock . Não sei por que o pacote apt é instalado como root.

$ sudo show derp:derp /var/run/docker.sock

Encontrei um problema semelhante agora, e levei algumas horas para descobrir a causa.

A história é assim: usamos Jenkins para CI e ele executa testes para nosso serviço principal com docker-compose, pois depende de poucos outros serviços. Um colega de trabalho pressionou e Jenkins simplesmente falhou em construí-lo, não importa o que acontecesse, embora o código e os testes estivessem perfeitamente bem. O problema parecia ser o seguinte:

  • Jenkins cria uma pasta para cada pipeline e encurta seu nome para um certo comprimento. Ele cria um nome de pasta como "$GIT_BRANCH-$RANDOMISH_HASH" e a parte curiosa é que ele trunca a string desde o início.
  • O nome do branch com falha continha travessões ( - ), e o nome do diretório resultante gerado pelo Jenkins acabou começando com - .
  • Em seguida, o Jenkins executaria docker-compose nessa pasta e, por padrão, docker-compose usa o nome do diretório como um prefixo para nomear os contêineres.
  • Isso significa que ele tenta criar containers com nomes que começam com traço ( - ) e que parecem ser um caractere ilegal para o nome de um container docker para começar.
  • E então docker-compose falha com um erro genérico com um enganoso "Não foi possível conectar ao daemon do Docker - está em execução?" mensagem.

A solução no meu caso foi especificar o nome do projeto personalizado ( -p ) que seria usado em vez do nome do diretório padrão:

docker-compose -f docker-compose.ci.yml -p "$SANITIZED_GIT_BRANCH" build

@ alberto56 Trabalho fixo:

chown -R user:user .

Além disso, atualize seu .dockerignore se houver algo que não deva ser enviado ao docker para construção.

tente adicionar sudo é isso

sudo docker-compose up

a solução para mim é adicionar meu usuário ao grupo docker, obrigado por você não deve usar sudo ao usar docker
https://techoverflow.net/2017/03/01/solving-docker-permission-denied-while-trying-to-connect-to-the-docker-daemon-socket/

No meu caso, se o usuário não tiver permissão para /var/run/docker.sock docker-compose, tente conectar-se a http+docker://localhost .
sudo usermod -a -G docker $USER pode consertar isso.

neste ponto https://github.com/docker/compose/issues/4181#issuecomment -317120015
reiniciar o PC resolverá este problema

CentOS
Devo dizer que resolvi desconectar e reconectar ao servidor ...

tl; dr pare comentários desnecessários
Rapazes. Acho que reiniciar não deve fazer parte de NENHUM problema no GitHub. Por favor. Isso nos distrai do que estamos fazendo por notificações inúteis. Lembre-se de que comentar aqui tem como objetivo agregar valor ao problema em si. Reiniciar não está resolvendo porque está acontecendo novamente. Em algum ponto em particular, o soquete está travado e, portanto, se alguém encontrar algo que não foi comentado anteriormente neste tópico agrega valor, por favor, comente e, se não, evite criar notificações :) - desculpe pelo longo tempo.

sudo chown $USER:docker /var/run/docker.sock funciona para mim.

sudo which docker-compose up funciona bem para mim no Ubuntu 16.

Parece que há vários problemas de acesso diferentes. Eu tenho esse problema no novo Fedora 28 e resolvi desabilitando o selinux.

meu resolvido digitando
sudo dockerd
//então
sudo docker-compose up -d

AJUSTE um volume com "/var/run/docker.sock:/var/run/docker.sock" e funcionará

Funcionou depois que reiniciei o servidor :)

O meu foi apenas porque docker-compose não estava em PATH . A resposta de @pelican resolveu

simplesmente siga as instruções mencionadas neste problema e reinicie sua máquina.

Apenas fazer isso funcionou para mim:

sudo apt-get purge golang-docker-credential-helpers

Acabei de enfrentar o caso em que funcionou e algumas linhas de shell depois (sem qualquer instalação / atualização de pacote), ele está gerando este erro. Apenas tentei outros projetos e ele constrói, então eu sinto que algo está quebrado com o cache do docker ou partes internas relacionadas a esta imagem. A remoção da imagem do Docker, reiniciando o serviço do docker ou sistema operacional não funciona. O Docker está instalado corretamente (sem a necessidade de sudoing) ..

Editar: podar o sistema e remover este contêiner específico resolveu o problema

Para mim, era meu usuário não ser membro do grupo docker. Resolver...
sudo usermod -aG docker ${USER}
Em seguida, saia e volte a entrar ou sudo su - ${USER} para receber a configuração atualizada no seu terminal

essa é a solução correta

sudo docker-compose run ....... funcionou para mim :)

Eu tive os mesmos problemas e resolvi reiniciar meu docker, muito obrigado

A resposta está na documentação do Docker na seção de etapas de pós-instalação:
https://docs.docker.com/install/linux/linux-postinstall/

Conforme relatado no doc:

O daemon Docker se liga a um soquete Unix em vez de uma porta TCP. Por padrão, o soquete Unix é propriedade do usuário root e outros usuários só podem acessá-lo usando sudo

Por isso funciona executando o comando com sudo .

Se você quiser que seu usuário personalizado se conecte ao docker (como no meu caso), você deve adicioná-lo ao grupo docker com:

sudo usermod -aG docker $USER

Na verdade, os proprietários do soquete docker são:
srw-rw---- 1 root docker 0 Oct 3 11:31 /var/run/docker.sock

Depois disso, conforme relatado no doc, você deve fazer logout e login novamente ou reiniciar se estiver testando em uma máquina virtual.

Eu testei em uma máquina virtual Ubuntu 14.04 rodando em Parallel e não precisei reiniciá-la. Eu só precisava fazer o login novamente para resolver o problema.

NOTA
Dê uma olhada no aviso indicado na documentação, porque o grupo "docker" concede privilégios equivalentes ao usuário root. Portanto, adicionar um usuário a esse grupo pode ser um problema de segurança de acordo com o seu cenário.

execute o comando como root

export DOCKER_HOST = 127.0.0.1

e, em seguida, localize-se na pasta de docker-compose.yml e execute o comando:
su docker-compose up

Conforme escrito em comentários anteriores, tentar construir cada serviço individualmente fornece mensagens de erro mais úteis.
Eu tive este erro porque o nome da minha imagem estava em maiúsculas dentro do docker-compose.yml.
Alterar as propriedades do nome e da imagem do serviço resolveu o problema.

Basta reiniciar o docker e ele funcionará perfeitamente.
Execute: service docker restart e, em seguida, execute qualquer comando do docker que desejar.

Você precisa adicionar seu usuário ao grupo docker para evitar "sudo docker ..."
sudo usermod -aG nome de usuário do docker

O seu usuário está no grupo de usuários do docker?

sudo usermod -aG docker ${USER}

Verifique este artigo: https://medium.com/@ibrahimgunduz34/if -you -ided-an-issue-like-couldnt-connect-to-docker-daemon-at-http-docker-localunixsocket-is-27b35f17d09d

não estava funcionando para mim também. Acabei de adicionar o sudo antes do comando e ele começou a funcionar ..

sudo dockerd

me dá

Segmentation fault

então meu problema é que o docker daemon não está rodando, mas eu não sei o que devo fazer

Eu achei isso útil

Eu atualizei meu docker-compose de 1.16.1 para 1.23.1 e resolvi!

Não tenho certeza do que aconteceu, reiniciei meu PC e ele começou a funcionar !!

Eu tive o mesmo problema e para mim o motivo pelo qual uma reinicialização o corrigiu foi que após a instalação meu usuário foi adicionado ao grupo docker, mas essa mudança de grupo só se tornou efetiva através de um relogin.

Eu encontrei isso hoje devido a um erro que cometi no meu arquivo docker-compose.yml.

Eu acidentalmente incluí a declaração de chave volumes: duas vezes e isso resultou em uma falha ao mapear docker.sock em um contêiner interno. O erro ficou assim:

    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    volumes:
      - datafiles:/datafiles

Que deveria apenas ter dito:

    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - datafiles:/datafiles

Eu descobri que quando você declara duas seções de volumes como esta, a primeira é ignorada. O contêiner, obviamente, não foi capaz de executar comandos do docker por causa disso.

Tive o mesmo problema, mas consegui resolvê-lo executando o docker como root ou aplicando permissões de execução.

Usei este link https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-18-04 na seção Executing the Docker Command Without Sudo.

Uma questão um tanto offtopic, há algum tempo procuro documentação ou referências sobre a definição de esquema http+docker:// . Alguém aqui tem um URL ou referência a este esquema? Obrigado!

Eu tive esse problema, mas percebi que a mensagem de erro docker-compose era tremendamente inútil e enganosa. Para encontrar a causa real, apenas docker build <service> manualmente para cada serviço em meu docker-compose.yml até encontrar um que se recusou a construir. No meu caso, era um problema de permissão com __pycache__ no diretório de serviço.

Eu tive o mesmo problema e nenhuma das soluções estava ajudando.
Tentei a ideia Rosso84.
sudo service docker stop
sudo dockerd
Agora posso correr
docker-compose up
com sucesso.
Um pouco de estranheza continua -
sudo docker-compose up
diz comando não encontrado.

funcionou para mim:
sudo groupadd docker
sudo gpasswd -a janela de encaixe $ USER

Faça um newgrp docker ou faça logout / login para ativar as mudanças nos grupos.
newgrp docker

Eu tive esse problema ao usar um argumento de compilação não definido, que foi usado na tag da minha imagem FROM . Correção: defina o argumento de construção para algo diferente de uma string em branco.

reiniciar o servidor resolveu para mim

Se você for um usuário não root, tente adicionar o usuário à permissão do docker

sudo usermod -a -G docker theUser

Consertei reiniciando meu Ubuntu também ....

Oi ,

problema resolvido com sudo antes do comando;),

Obrigado,
Moatez

É um problema de permissão.

- sudo chown $USER:docker /var/run/docker.sock Isso funcionou para mim em uma configuração do Ubuntu 18.

Não tenho certeza do que aconteceu, reiniciei meu PC e ele começou a funcionar !!

Leve o seu gosto, senhor

apenas digite sudo antes de seu comando docker-compose !

isso funcionou para mim
sudo chown $USER:docker /var/run/docker.sock

usermod -a -G docker USER
Em seguida, saia e faça login novamente em USER.

Eu encontrei o mesmo erro sempre que tinha uma variável dentro de docker-compose.yml que NÃO está presente em .env.

Erro estranho para tal cenário, mas - tanto faz. :)

apenas digite sudo antes de seu comando docker-compose !

Leve o seu gosto, senhor!
omg ..., mas funciona bem para mim, ótimo trabalho!

eu só tinha que fazer:
sudo ln -s / usr / local / bin / docker-compose / usr / bin / docker-compose

e funcionou!

Instalei docker-compose e, ao mesmo tempo, resolvi o problema com as seguintes etapas:
passo 1:
sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose- uname -s - uname -m -o / usr / local / bin / docker-compose

Passo 2:
sudo chmod + x / usr / local / bin / docker-compose

etapa 3:
docker-compose --version

Passo 4:
export DOCKER_HOST = 127.0.0.1: 2375

passo 5:
usermod -a -G docker $ USER

passo 6:
Reinicie o seu pc ou execute o comando
desligar

Isso funcionou para mim:

sudo usermod -aG docker $ (whoami)

sair

Conecte-se

verifique se você está no grupo "docker".

- sudo chown $USER:docker /var/run/docker.sock Isso funcionou para mim em uma configuração do Ubuntu 18.

THX!

Olá,
recebeu a mesma mensagem de erro:

ERRO: Não foi possível conectar ao daemon do Docker em http + docker: // localhost - está em execução?
Se estiver em um local não padrão, especifique a URL com a variável de ambiente DOCKER_HOST.

Mas esta mensagem foi enganosa, porque meu docker deamon não teve nenhum problema de conexão.
O motivo foi um erro estúpido que cometi no Yaml (que eu não sabia antes). Eu acidentalmente coloquei uma letra maiúscula no nome da imagem. Isso levou ao fato de que o serviço não pôde ser formado, já que apenas letras minúsculas são permitidas como nomes.
Percebi o erro quando tentei construir o Dockerfile separadamente com os nomes.
Seria útil se docker-compose pudesse encaminhar os erros que ocorrem nos problemas de compilação. Visto que, como @ shin- também disse, esse bug ainda pode ocorrer por muitos motivos no momento. Mesmo que já faça algum tempo desde que @ shin- escreveu isso, o problema ainda parece existir. Talvez possa ser útil.

Só estou postando meu problema aqui, porque todo mundo está pensando estritamente em problemas reais de conexão com o docker e eu queria mostrar que não precisa ser sempre assim.

$ cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core) 

$ sudo service docker start
$ sudo service docker status

Olá,

Eu enfrentei o mesmo problema. Mas foi resolvido depois que reiniciei minha VM.

BR.Saurabh

esse comando resolve para mim:

sudo usermod -aG usuário docker

comandos:

sudo ln -s / usr / local / bin / docker-compose / usr / bin / docker-compose
sudo docker-compose up -d

Se você acabou de instalar o docker e acabou de conceder o grupo docker a um usuário, tente fazer logout desse usuário e fazer login novamente.

sudo service docker start && docker-compose up -d

Por favor, tente com o comando acima. O problema foi corrigido para mim

Nenhuma das soluções listadas acima corrigiu isso para mim. Alguma outra ideia?

ERRO: Não foi possível conectar ao daemon do Docker em http + docker: // localhost - está em execução?

Se estiver em um local não padrão, especifique a URL com a variável de ambiente DOCKER_HOST.

resolvi o problema com esse comando:

sudo chown $USER:docker /var/run/docker.sock

👇🏻👇🏻👇🏻👇🏻👇🏻👇🏻
👉🏽SOLUÇÃO 👈
👆🏿👆🏿👆🏿👆🏿👆🏿👆🏿

se você ainda não tentou nada com este passo, execute estes dois comandos e isso resolverá este problema específico:
sudo usermod -a -G docker $USER # adiciona seu usuário atual ao grupo docker
newgrp docker # ativa novas permissões para docker grupo

sudo usermod -a -G docker $ USER # adiciona seu usuário atual ao grupo docker
newgrp docker # ativa novas permissões para o grupo docker

Deve ser newgrp -l docker . Ao usar isso, as pessoas devem estar cientes de que newgrp inicia um novo shell, de modo que seu ambiente será redefinido como se eles estivessem logados novamente se usarem -l .

Primeiro, precisamos remontar tmp com permissão exec executando

  1. sudo mount / tmp -o remount, exec
    em seguida, faça o docker por
  2. "service docker start" no usuário root ou "sudo service docker start"
    então
  3. "docker-compose up" ou "docker-compose start" funcionou para mim

sudo docker-compose up -d
ERRO: Não foi possível conectar ao daemon do Docker em http + docker: // localhost - está em execução?

Se estiver em um local não padrão, especifique a URL com a variável de ambiente DOCKER_HOST.
加上 sudo 也是 报 同样 的 错误

raiz de grupos
root: root docker
root está sob o grupo docker

Resolvido o problema com isto:

  1. sudo usermod -aG docker $USER
  2. Faça logout e login novamente para que sua associação ao grupo seja reavaliada.
  3. Verifique se você pode executar comandos do docker sem sudo: docker info

O DOCKER_HOST padrão é unix: ///var/run/docker.sock. Se este arquivo não existir ou seu usuário atual não tiver acesso a esse arquivo, ele está tentando se conectar a http + docker: // localhost
Experimentar:
sudo chown /var/run/docker.sock
Em seguida, tente novamente executar docker-compose up
Funcionou para mim.

Você já tentou sem sudo ? Você não deveria precisar e pode estar bagunçando as coisas no seu caso. Além disso, o que você vê quando executa docker info ?
Obrigado! funciona!

Mas, Docker, adicione um aviso correto!

Recebi esta mensagem ao copiar volumes da máquina de poruction, acabou owerdrite metadata.db dentro de /var/lib/docker/volumes , então ele trava. Uma correção é tão simples

docker system prune --volumes -f && rm /var/lib/docker/volumes/metadata.db && docker-compose up -d

Isso geralmente acontece quando você executa comandos docker como sudo, enquanto executa comandos docker-compose sem ele.
O que você precisa fazer é adicionar o usuário docker ao grupo sudo. (ou seja, usermod -aG docker $ USER)
Em seguida, você pode executar os dois comandos (docker e docker-compose) sem sudo.

Eu tive exatamente o mesmo erro. Tirei o contêiner (id) e iniciei a janela de encaixe novamente. Isso resolveu o problema para mim. Não exclui nenhum dado que já foi enviado.

Vá para o diretório cvat e execute o seguinte em seu terminal:

  • sudo docker ps (mostra informações sobre os dockers em execução)
  • docker stop "Aqui está o ID do seu contêiner" (por exemplo, o meu era e6339eae0675)
  • sudo docker rm "Aqui está o ID do seu contêiner"
  • sudo docker-compose up -d

eu tenho o mesmo problema, _sudo docker-compose up_ funciona para mim.

A solução para mim foi parar meu openvpn que eu estava usando.

Não tenho certeza do que aconteceu, reiniciei meu PC e ele começou a funcionar !!

Isso funciona.

as etapas a seguir resolveram o problema para mim.

remover docker:
$ sudo apt-get remove docker docker-engine
reinstalar com
curl -sSL https://get.docker.com/ | sh

adicionar usuário a um grupo:
sudo usermod -aG docker user

Apenas uma nota de que você precisa exit o shell e fazer o login novamente para que o comando usermod seja executado.

Acabei de sofrer novamente o mesmo problema de antes, e encontrei sime light no final ...
É relacionado a que docker-compose mostra esta mensagem estranha escondendo o problema real.
Eu apenas tentei construir uma das imagens com docker build. e então descobriu que alguns arquivos que tentavam ser incluídos no cache não tinham permissão para ler e a construção falhou.
Uma vez removidos os arquivos emitidos, ele começou a funcionar novamente sem problemas.
No meu caso, montar o diretório atual foi o problema, pois teste gerou diretórios com usuários root nos hosts
Então, da próxima vez, a compilação falhou porque não pode ler e começar a falhar na compilação sem nenhuma mensagem clara da compilação docker-compose.
É necessário verificar o teste de execução do usuário para evitar o problema mais tarde, mas espero que isso ajude outras pessoas a encontrar o problema real.

Saudações

adicionar usuários regulares ao grupo docker

# usermod -a -G docker user
# exit
$ exec $SHELL
$ docker-compose ps

Eu corrigi isso removendo a configuração da variável CONTAINER_REGISTRY_BASE

$ sudo usermod -aG docker $ USER

Descobri que faltava uma variável de ambiente que estava quebrando as configurações de image: em docker-compose.yml

¯_ (ツ) _ / ¯

as etapas a seguir resolveram o problema para mim.

remover docker:
$ sudo apt-get remove docker docker-engine
reinstalar com
curl -sSL https://get.docker.com/ | sh

adicionar usuário a um grupo:
sudo usermod -aG docker user

Obrigado. Desinstalar, reinstalar e alterar as permissões do usuário e fazer logout e login novamente resolveu para mim.

Nenhuma das soluções listadas acima corrigiu isso para mim. Alguma outra ideia?
ERRO: Não foi possível conectar ao daemon do Docker em http + docker: // localhost - está em execução?
Se estiver em um local não padrão, especifique a URL com a variável de ambiente DOCKER_HOST.

resolvi o problema com esse comando:

sudo chown $USER:docker /var/run/docker.sock

Isso consertou para mim.

Fiz tudo, exceto vincular simbolicamente ao docker-compose. Seguir os comandos corrigiu meu problema

  1. Adicionar usuário ao grupo docker (se ainda não tiver sido adicionado)
    sudo usermod -aG docker $USER
  2. crie um link simbólico para / usr / bin usando o seguinte comando
    $ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
  3. Reinicie o serviço docker
    $ sudo service docker restart

No meu caso, nenhuma das opções acima funcionou

Acontece que no meu arquivo de composição eu tinha um camelCase nome de imagem ( eg imageName ) e isso estava causando Couldn't connect to Docker daemon at http+docker://localunixsocket . Mudar para dash-case resolveu o problema (muito estranho).
O serviço Docker estava funcionando bem, docker ps e info também não relatavam problemas, apenas iniciar o arquivo de composição era o problema.

Ubuntu 18.04
docker 19.03.6
docker-compose 1.17.1 (compose file version 3)

sudo docker-compose up -d

acabei de enfrentar esse problema novamente e percebi que devo reiniciar o Ubuntu depois de adicionar o usuário mu ao grupo Docker

sudo usermod -aG usuário docker

Isso por @ Kirill-Babkin resolveu para mim. Eu tinha criado um usuário que não estava no grupo docker. Obrigado.

No meu caso, meu docker-compose.yml estava sem definição de env na seção image

prod-image-generation:
    image: my-image:${BUILD_NUMBER}

Perdi cerca de 30 minutos com isso. Por favor, sugira um erro significativo para este

A solução foi definida um valor para o var

Apenas a exportação vazia funcionou para mim.

export DOCKER_HOST=

Nova instalação do Docker aqui no Ubuntu 18. Supondo que seu usuário já esteja no grupo docker , basta instalar o serviço docker para que ele seja iniciado automaticamente sudo systemctl enable docker e reinicie e voila sudo init 6

Tive o mesmo problema.
Resolvido em meu sistema escrevendo "compilação docker-compose"

Eu simplesmente tive o mesmo problema. Descobri que, por algum motivo, meu usuário não foi adicionado ao grupo de segurança do docker, por sua vez, não me permitindo permissão no soquete unix do docker e me dando _ERRO: Não foi possível conectar ao Docker daemon em http + docker: // localunixsocket - está em execução .

Adicionar o grupo docker ao meu usuário atual e, em seguida, desconectar e conectar novamente corrigiu tudo para mim:
sudo usermod -aG docker $USER

Em seguida, reiniciou a máquina e executou docker-compose up --build 👍

exposição

sudo usermod -aG docker $USER

Em seguida, reiniciou a máquina e executou docker-compose up --build +1

Você não precisa reiniciar, um simples novo login deve ser suficiente. Foi o que aconteceu comigo.

Não tenho certeza do que aconteceu, reiniciei meu PC e ele começou a funcionar !! 🤓

Isso funciona. não sabe porque? haha

Nova instalação do Docker aqui no Ubuntu 18. Supondo que seu usuário já esteja no grupo docker , basta instalar o serviço docker para que ele seja iniciado automaticamente sudo systemctl enable docker e reinicie e voila sudo init 6

Estou usando o Manjaro e essa solução funciona para mim

obrigado @mikemix

Tentei várias etapas com base no erro abaixo, após executar dockered .

can't initialize iptables table nat': Table does not exist (do you need to insmod?) Perhaps iptables or your kernel needs to be upgraded. (exit status 3)

Mas iniciar o Terminal como administrador funcionou.
sudo service docker start
Lembre -

No Ubuntu 20.04 eu precisava executar

sudo chmod 777 /var/run/docker.sock

e começou a funcionar imediatamente.


⚠️ Editar

Cuidado com o comando acima

Isso dá a qualquer usuário dessa máquina acesso total a um arquivo que normalmente pertence ao root. Você pode criar uma falha grave de segurança em seu sistema dessa forma.
@Taranchul

sudo chmod 777 /var/run/docker.sock

Isso dá a _qualquer_ usuário daquela máquina acesso total a um arquivo que normalmente pertence ao root. Você pode criar uma falha grave de segurança em seu sistema dessa forma. Consulte https://stackoverflow.com/questions/47854463/docker-got-permission-denied-while-trying-to-connect-to-the-docker-daemon-socke para avisos semelhantes.

Conforme mencionado aqui e no link acima, sudo usermod -aG docker $USER (ou o nome de usuário em questão em vez de $ USER) deve resolver o problema sem prejudicar as medidas de segurança do sistema.

@Taranchul Você está totalmente certo! Sempre usei sudo usermod -aG docker $USER . Mas, infelizmente, sudo usermod -aG docker $USER não parece mais funcionar no Ubuntu 20.04.

Alguma ideia do que pode estar errado?

Infelizmente, eu não. Você fez login novamente com esse usuário (isso funcionou para mim) ou reiniciou a máquina? Acho que você fez isso, mas é melhor ter certeza.

Apenas no caso de você ou qualquer outra pessoa desejar restaurar as permissões originais de docker.sock , elas são 660, pelo menos no meu Ubuntu Server 18.04.

@Taranchul Sim, tentei fazer

Talvez seja um problema do 20.04, já que sua versão final foi lançada ontem. Eu normalmente espero pelo primeiro instantâneo de qualquer lançamento de LTS em algum momento do verão, que espero ter a maioria dos problemas iniciais corrigidos nessa época.

Você poderia testá-lo em uma versão mais antiga?

@Taranchul Parece ser um problema com 20.04. Funciona bem no dia 19/04

Essa é uma informação útil, embora não ajude muito no momento. Então, é uma opção você usar 18.04 até que 20.04 possa amadurecer nesse quesito?

Uma visão mais ampla: você verificou se o usuário realmente foi adicionado ao grupo do docker?

@Taranchul quer dizer, eu poderia usar o 18.04, mas como já migrei tudo para o 20.04 provavelmente não o farei.

Executar todos os comandos do docker com sudo uma opção válida até que seja corrigido?

Infelizmente, não sei muito sobre docker, então não posso responder a essa pergunta.

Eu encontrei estas instruções para instalar o docker em 20.04 que fazem isso de maneira um pouco diferente: https://www.how2shout.com/how-to/how-to-install-docker-ce-on-ubuntu-20-04-lts- focal-fossa.html

Eles adicionam o grupo docker antes de adicionar o usuário. Talvez seja necessário em 20/04? (Ainda não o tenho, por isso não posso testá-lo sozinho.)

sudo groupadd docker
sudo gpasswd -a $USER docker
newgrp docker # or relogin to make the new group known to the system

@Taranchul Você sabe o que é estranho .... Corri sudo chmod 660 /var/run/docker.sock para redefinir as permissões e após reiniciar ainda está funcionando.

Posso considerar que o problema foi corrigido ou ainda pode haver um risco de segurança?
Talvez eu tenha esquecido uma etapa quando instalei tudo ontem ... e realmente não é um problema com o Ubuntu 20.04?

De acordo com esta pergunta no askubuntu.com , o docker originalmente precisava do sudo para iniciar, mas obteve usabilidade não root com a versão 19.03. Nos comentários, alguém menciona que, sem o grupo docker, a propriedade de docker.sock era root:root . Somente depois de criar o grupo docker, adicionar o usuário a ele e reiniciar o servidor docker, ele mudou para root:docker . Portanto, verificar se o grupo existe ( editar: e se existir, verificar a propriedade de docker.sock ) parece ser uma boa ideia. Também para reiniciar sua instância do docker.

Lembre-se de uma das respostas com classificação mais baixa, aquela que fala sobre ACLs e como você pode ativar o acesso a docker.socks pelo comando setfacl .

Por último, não menos importante, há avisos sobre o último, bem como sobre a adição de um usuário ao grupo docker, porque dá a esse usuário direitos de acesso significativos. 😎 Mas ainda acho que essas formas são preferíveis ao chmod para as permissões do arquivo.

Lendo seu último comentário bem sei depois de escrever o acima, eu diria apenas seja feliz e observe tudo. É difícil dizer se você esqueceu algo e consertou de alguma forma enquanto tentava várias soluções.

@Taranchul Ótimo. Ele ainda está funcionando após reiniciar o Docker. Acho que foi só minha culpa. Obrigado pela ajuda!

@flulu É um prazer e obrigado por considerar meu primeiro aviso tão amigável quanto deveria. :)

No Windows 10, foi resolvido atualizando para WSL2 e apoiando minha distribuição Ubuntu para WSL2.
https://docs.microsoft.com/en-us/windows/wsl/wsl2-install

Este problema foi resolvido quando reiniciei o computador. :sorriso:

Isso resolveu meu problema.

sudo usermod -aG docker myuser

Muito obrigado, @ Kirill-Babkin.

Resolvido por:

sudo chmod 666 /var/run/docker.sock
sudo chmod 666 /var/run/docker.sock

Como disse aqui antes , isso pode abrir uma brecha de segurança em seu sistema. Você tentou a solução usermod antes disso? Isso pode aumentar as preocupações com a segurança também, porque dá ao usuário acesso completo pelo docker, mas em comparação com dar a _todos_ acesso do usuário a um arquivo de propriedade do root, parece ser o mal menor.

@ matteo-bombelli
Eu tive o mesmo problema.
Você precisa reiniciar o docker.
$ service docker restart
Eu resolvi isso com isso.

Foi a solução e deu certo obrigado!

eu recebo este erro no ubunt 20.0.4

Eu instalei com apt get from apt sources. Existe uma versão mais recente em um ppa?

eu fiz
newgrp docker
e funcionou

Eu estava trabalhando no Lightsail. Reinicializar a imagem corrigiu isso.

Talvez apenas tente adicionar seu usuário Linux ao grupo: docker e, em seguida, faça login novamente.

No Ubuntu 20, o docker é executado sob pressão, como você pode ver em 'systemctl status snap.docker.dockerd.service'

Ele tenta iniciar com o grupo /var/run/docker.sock definido como 'docker', mas por padrão, esse grupo não existe no Ubuntu 20, mesmo se você selecionar o snap do Docker na instalação.

Para corrigir isso, crie o grupo, adicione seu usuário ao grupo e reinicie

sudo groupadd docker
sudo usermod -G docker $ USER
sudo reboot

Você não pode simplesmente fazer logout e, em seguida, fazer login e, pelo que pude perceber, não é possível reiniciar o snap.docker.dockerd ou o próprio snapd e alterar as permissões. Não sei como enganá-lo para fazer a coisa certa sem reiniciar, então se você souber, por favor me informe.

Estou no dia 20/04 e tive o mesmo problema e poderia fazer sudo docker info mas não como meu usuário regular. Eu estava no grupo docker de antes e ainda posso navegar no meu site wordpress em 127.0.0.1. Tive que executar newgrp docker para consertar. Muito estranho porque tudo que fiz foi bloquear esta estação de trabalho desde que configurei o docker há 2 dias. Talvez uma atualização tenha quebrado alguma coisa?

newgrp docker funciona para mim

A configuração DOCKER_HOST funcionou manualmente para mim

  1. Descubra o caminho para o arquivo meia: (usando sudo service docker status ou ps -aef | grep docker )
  2. exportar DOCKER_HOST=unix://<path to sock file>

No meu caso, o arquivo de meia estava localizado em /run/containerd/containerd.sock
então eu tive que executar export DOCKER_HOST=unix:///run/containerd/containerd.sock

No meu caso - depois de reiniciar o cluster, o problema foi resolvido.

No Ubuntu 20, o docker é executado sob pressão, como você pode ver em 'systemctl status snap.docker.dockerd.service'

Ele tenta iniciar com o grupo /var/run/docker.sock definido como 'docker', mas por padrão, esse grupo não existe no Ubuntu 20, mesmo se você selecionar o snap do Docker na instalação.

Para corrigir isso, crie o grupo, adicione seu usuário ao grupo e reinicie

sudo groupadd docker
sudo usermod -G docker $ USER
sudo reboot

Você não pode simplesmente fazer logout e, em seguida, fazer login e, pelo que pude perceber, não é possível reiniciar o snap.docker.dockerd ou o próprio snapd e alterar as permissões. Não sei como enganá-lo para fazer a coisa certa sem reiniciar, então se você souber, por favor me informe.

Eu acredito que você quer dizer sudo usermod -aG docker $ USER. Executar sem -a causará "Se o usuário for atualmente um membro de um grupo que não está listado, o usuário será removido do grupo."

Você não pode simplesmente fazer logout e, em seguida, fazer login e, pelo que pude perceber, não é possível reiniciar o snap.docker.dockerd ou o próprio snapd e alterar as permissões. Não sei como enganá-lo para fazer a coisa certa sem reiniciar, então se você souber, por favor me informe.

Um relogin deve ser suficiente para tornar o novo grupo ativo para aquele usuário.

Isso surgiu para mim também. Eu precisava me desconectar do meu cliente nordvpn por algum motivo.

sudo docker-compose up -d funciona !!!

Você já tentou sem sudo ? Você não deveria precisar e pode estar bagunçando as coisas no seu caso. Além disso, o que você vê quando executa docker info ?

ura gênio do caralho. você sabe disso ? Muito obrigado mano. você me salvou do inferno.

Não sei exatamente por que, mas no meu caso eu tinha um submódulo que não foi verificado. Executar git submodule update --init e, em seguida, executar novamente docker-compose build corrigiu o problema para mim

Não tenho certeza do que aconteceu, reiniciei meu PC e ele começou a funcionar !!

O mesmo aqui. 😃

Eu simplesmente tive o mesmo problema. Descobri que, por algum motivo, meu usuário não foi adicionado ao grupo de segurança do docker, por sua vez, não me permitindo permissão no soquete unix do docker e me dando _ERRO: Não foi possível conectar ao Docker daemon em http + docker: // localunixsocket - está em execução .

Adicionar o grupo docker ao meu usuário atual e, em seguida, desconectar e conectar novamente corrigiu tudo para mim:
sudo usermod -aG docker $USER

Além disso, não se esqueça de executar newgrp docker para obter acesso a esse grupo em seu shell atual. ref https://stackoverflow.com/a/48569858/2040522

Eu simplesmente tive o mesmo problema. Descobri que, por algum motivo, meu usuário não foi adicionado ao grupo de segurança do docker, por sua vez, não me permitindo permissão no soquete unix do docker e me dando _ERRO: Não foi possível conectar ao Docker daemon em http + docker: // localunixsocket - está em execução .

Adicionar o grupo docker ao meu usuário atual e, em seguida, desconectar e conectar novamente corrigiu tudo para mim:
sudo usermod -aG docker $USER

Isso funciona perfeitamente. Você tem que reiniciar para ver os resultados.

sudo usermod -aG docker $USER

Isso funciona perfeitamente. Você tem que reiniciar para ver os resultados.

Alternativamente, newgrp docker deve fazer isso sem relogar.

sudo chmod 666 /var/run/docker.sock

Como disse aqui antes , isso pode abrir uma brecha de segurança em seu sistema. Você tentou a solução usermod antes disso? Isso pode aumentar as preocupações com a segurança também, porque dá ao usuário acesso completo pelo docker, mas em comparação com dar a _todos_ acesso do usuário a um arquivo de propriedade do root, parece ser o mal menor.

Você está dizendo certo, mas isso é muito importante para devops, eu sou apenas um desenvolvedor e conserto isso usando este comando,
agradecimento especial a @ shqear93

Isso é doloroso e não acredito que o problema tenha sido resolvido há três anos sem nenhuma resposta significativa do Docker. Este problema com o github não deve estar em seu conjunto de recursos. Qual é o plano para corrigir isso? Não critique isso para usuários que não entendem como grupos, usuários e sessões funcionam, ou outros softwares que funcionam da maneira que funcionam. _Você_ escolheu esse jeito complicado de fazer as coisas.

Tive que _restart_ meu computador em vez de fazer logout / login para sudo usermod -aG docker my_user para entrar em vigor. Algumas evidências de que isso está acontecendo com outras pessoas aqui: https://unix.stackexchange.com/questions/277240/usermod-ag-group-user-not-work.

Eu simplesmente tive o mesmo problema. Descobri que, por algum motivo, meu usuário não foi adicionado ao grupo de segurança do docker, por sua vez, não me permitindo permissão no soquete unix do docker e me dando _ERRO: Não foi possível conectar ao Docker daemon em http + docker: // localunixsocket - está em execução .
Adicionar o grupo docker ao meu usuário atual e, em seguida, desconectar e conectar novamente corrigiu tudo para mim:
sudo usermod -aG docker $USER

Além disso, não se esqueça de executar newgrp docker para obter acesso a esse grupo em seu shell atual. ref https://stackoverflow.com/a/48569858/2040522

Funcionou perfeitamente para mim. Obrigado!

No Ubuntu 16.04 isso funcionou para mim:
sudo service docker start && docker-compose up -d

isso funcionou para mim!

Eu simplesmente tive o mesmo problema. Descobri que, por algum motivo, meu usuário não foi adicionado ao grupo de segurança do docker, por sua vez, não me permitindo permissão no soquete unix do docker e me dando _ERRO: Não foi possível conectar ao Docker daemon em http + docker: // localunixsocket - está em execução .
Adicionar o grupo docker ao meu usuário atual e, em seguida, desconectar e conectar novamente corrigiu tudo para mim:
sudo usermod -aG docker $USER

Além disso, não se esqueça de executar newgrp docker para obter acesso a esse grupo em seu shell atual. ref https://stackoverflow.com/a/48569858/2040522

Isso resolveu meu problema, obrigado !!!

Não tenho ideia do motivo, mas o que corrigiu para mim foi remover a seguinte linha do meu arquivo docker-compose .env :

DOCKER_HOST=tcp://localhost:2375

Resolvido por:

sudo chmod 666 /var/run/docker.sock

Obrigado. Resolvido no Ubuntu 20.0.4 LTS

Acabei de tentar jogar com permissões e fiz:

compilação sudo docker-compose

E foi para as corridas.
No cerne disso, está um problema de permissões, se o serviço docker está em execução, o grupo foi atribuído, as permissões de soquete estão todas configuradas e ainda não o vejo funcionando. Basta fazer isso com o sudo. Funcionou para mim, tenho coisas melhores para fazer.

alguma solução para ubuntu 20.04?

alguma solução para ubuntu 20.04?

Você tentou a solução postada antes? (https://github.com/docker/compose/issues/4181#issuecomment-629748049)

Resumindo (com sugestões posteriores adicionadas):

sudo groupadd docker
sudo usermod -aG docker $ USER
newgrp docker

Se "newgrp docker" não for suficiente, uma reinicialização pode ser necessária (há comentários conflitantes sobre isso).

Esta página foi útil?
0 / 5 - 0 avaliações