Compose: No se pudo conectar al demonio de Docker en http + unix: //var/run/docker.sock - ¿se está ejecutando?

Creado en 29 mar. 2015  ·  131Comentarios  ·  Fuente: docker/compose

Intenté todo en este hilo: https://github.com/docker/compose/issues/88

Sigo sin suerte.

rept<strong i="8">@temponia</strong>:~/passenger$ netstat -ant  |grep 4243
tcp        0      0 127.0.0.1:4243          0.0.0.0:*               LISTEN     
rept<strong i="9">@temponia</strong>:~/passenger$ echo $DOCKER_HOST
tcp://localhost:4243
rept<strong i="10">@temponia</strong>:~/passenger$ sudo docker-compose build db uses an image, skipping
Building web...
Couldn't connect to Docker daemon at http+unix://var/run/docker.sock - is it running?

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

Esta es la versión:

rept<strong i="14">@temponia</strong>:~/passenger$ sudo docker version
Client version: 1.0.1
Client API version: 1.12
Go version (client): go1.2.1
Git commit (client): 990021a
Server version: 1.0.1
Server API version: 1.12
Go version (server): go1.2.1
Git commit (server): 990021a

¿Algunas ideas? También intenté instalar fig que funciona de inmediato sin ningún problema ...

Comentario más útil

Soleved para mí también con el comando sudo

Todos 131 comentarios

Recibo el mismo mensaje de error cuando ejecuto Docker.
Se resuelve agregándome al grupo de usuarios 'docker'

Intente ejecutar el siguiente comando para agregarse al grupo
usermod -aG docker ${USER}

O puede ejecutar el siguiente comando para averiguar a qué grupos pertenece
groups $USER

Parece que docker-compose no tiene en cuenta la var $DOCKER_HOST env aquí, porque está intentando conectarse al socket en lugar de la dirección 127.0.0.1.

mismo problema aquí

Encontré el mismo mensaje de error en este momento, esa vez el WiFi de mi computadora portátil está apagado sin conexión por cable. Habilito WiFi y me conecto a la red inalámbrica doméstica, luego el problema se resuelve.

Puede probar la versión 5.0.3 (precompilación) en https://www.virtualbox.org/wiki/Testbuilds ? Me ha solucionado este problema.

Tuve ese problema al usar Docker en mi Mac, pero se resolvió. Ejecuté el comando de composición sin sudo, por lo que parece que es un problema del usuario.

Soleved para mí también con el comando sudo

@rept ¿sigues teniendo este problema? La versión de la ventana acoplable que informó tiene más de un año, lo cual es, bueno, prehistórico en términos de la ventana acoplable :)

Me pregunto si este problema debería mantenerse abierto porque ahora está recopilando todo tipo de _posibles_ razones por las que no se puede acceder al demonio (no lo digo de mala manera; gracias a todos por sugerir soluciones, se agradece)

Hice una nueva instalación en una máquina completamente diferente y ahora está funcionando. Así que lo vas a cerrar.

Gracias, @rept , y es bueno saber que se resolvió.

yo obtengo

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

también cada vez que activo tty: true o stdin_open: true en docker-compose.yml y ejecutando docker-compose up .

¿Puede estar relacionado?

Docker version 1.9.1, build a34a1d5
docker-compose version 1.5.2, build 7240ff3

Acabo de resolver mi problema ejecutando el comando "docker-compose run ..." con sudo.

Me encontré con esto cuando ejecutaba docker compose up -d durante el vagabundo. El usuario vagrant se ha agregado al grupo docker pero el error anterior aparece cuando se ejecuta sin sudo . Funciona más adelante si uno inicia sesión como usuario vagrant pero falla durante el aprovisionamiento, por lo que tiene algo que ver con las variables env.

docker-compose version: 1.4.1

Solución simple: sudo docker-compose up

Corrí al mismo problema con:

[root<strong i="6">@c910f05c01bc07</strong> xcat-docker]# docker-compose version
docker-compose version 1.6.2, build 4d72027
docker-py version: 1.7.2
CPython version: 2.7.9
OpenSSL version: OpenSSL 1.0.1e 11 Feb 2013

versión de Docker:

[root<strong i="10">@c910f05c01bc07</strong> xcat-docker]# docker version
Client:
 Version:      1.10.2
 API version:  1.22
 Go version:   go1.5.3
 Git commit:   c3959b1
 Built:        Mon Feb 22 16:16:33 2016
 OS/Arch:      linux/amd64

Server:
 Version:      1.10.2
 API version:  1.22
 Go version:   go1.5.3
 Git commit:   c3959b1
 Built:        Mon Feb 22 16:16:33 2016
 OS/Arch:      linux/amd64

Esa es una solución alternativa, no una solución, ¿verdad?

Todavía me enfrento a menudo con esto

Este no es un problema de redacción. Si no puede conectarse al demonio docker desde compose, existen algunas causas probables:

  • olvidó exportar las variables DOCKER_ env, que a menudo se hace ejecutando eval $(docker-machine env default)
  • hay un problema de red entre usted y el host de la ventana acoplable remota (si está ejecutando en un proveedor en la nube)
  • hay un problema con el demonio docker que se ejecuta en Virtualbox VM
  • su usuario no tiene acceso al socket del daemon de la ventana acoplable debido a los permisos (si está ejecutando en un host Linux). La solución es sudo o arreglar los permisos.

Estos no son problemas que puedan resolverse componiendo.

Hay un problema con tty , que se marca aquí: # 3106

Puedo confirmar: este no es un problema de composición de Docker.

Si ayuda: me encontré con el mismo problema (No se pudo conectar ...) en un host de Ubuntu. Ejecutar sudo systemctl status docker.service -l mostró el problema "real". La solución en mi caso fue eliminar todos los archivos en "/ var / lib / docker / network / files /" y reiniciar el servicio de Docker.

hola @dnephin @madflow , creo que este es un problema de composición de Docker .

Dado que con la misma imagen de la ventana acoplable y la misma red acoplable, el contenedor se puede iniciar correctamente con

 sudo docker run -it --privileged=true  --hostname=xcatmn --name=xcatmn --add-host="xcatmn.clusers.com xcatmn:10.5.107.101" --volume /docker/xcatdata/:/install --net=subnet1 --ip=10.5.107.101  xcat/xcat-ubuntu-x86_64

pero falló con "docker-compose up". El docker-compose.yml es el equivalente correcto de las opciones y argumentos de "docker run":

[root<strong i="12">@c910f05c01bc07</strong> xcat-docker]# docker-compose config
networks:
  default:
    external:
      name: subnet1
    external_name: subnet1
services:
  xcatmn:
    container_name: xcatmn
    extra_hosts:
      xcatmn.clusers.com xcatmn: 10.5.107.101
    hostname: xcatmn
    image: xcat/xcat-ubuntu-x86_64
    networks:
      default:
        ipv4_address: 10.5.107.101
    privileged: true
    stdin_open: true
    tty: true
    volumes:
    - /docker/xcatdata:/install:rw
version: '2.0'
volumes: {}

La ventana acoplable y la información de la versión de redacción:

[root<strong i="16">@c910f05c01bc07</strong> xcat-docker]# docker version
Client:
 Version:      1.10.2
 API version:  1.22
 Go version:   go1.5.3
 Git commit:   c3959b1
 Built:        Mon Feb 22 16:16:33 2016
 OS/Arch:      linux/amd64

Server:
 Version:      1.10.2
 API version:  1.22
 Go version:   go1.5.3
 Git commit:   c3959b1
 Built:        Mon Feb 22 16:16:33 2016
 OS/Arch:      linux/amd64
[root<strong i="17">@c910f05c01bc07</strong> xcat-docker]# docker-compose version
docker-compose version 1.7.0dev, build 99d68be
docker-py version: 1.8.0-dev
CPython version: 2.7.9
OpenSSL version: OpenSSL 1.0.1e 11 Feb 2013

Si puede reproducir un problema de conexión con Compose y no con docker cli, abra un nuevo problema. Incluir toda la información que tiene aquí es genial, y también el mensaje de error y un enlace a un pegado con docker-compose --verbose up .

Recibo esto si alguno de los nombres de mis contenedores tiene carcasa de camello.

$ cat docker-compose.yml
referenceCombo:
  build: referenceCombo

$ docker-compose build
Building referenceCombo
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.

Cambie el nombre a "referencecombo" (todo en minúsculas) y está bien. El mensaje de error definitivamente no ayuda a resolver este :(

@chriskessel Creo que su problema está cubierto por # 2816, es un error en Docker Engine.

después de reiniciar los servicios de Docker, funciona para mí :(

reinicio de la ventana acoplable de servicio

Tuve el mismo error, después de 15 minutos de depuración. Resulta que todo lo que necesita es sudo :)
Consulte [Crear un grupo de Docker] aquí https://docs.docker.com/engine/installation/linux/ubuntulinux/ para deshacerse del prefijo sudo.

¿Por qué debe ejecutarse con sudo?

@fabiopaiva por defecto, la ventana acoplable:

$ ls -l /var/run/docker.sock
srw-rw---- 1 root docker 0 Jun 29 23:38 /var/run/docker.sock

por lo que debe ser root o miembro del grupo de Docker para conectarse a él. Si Docker estaba escuchando en un socket TCP, los permisos no se aplicarían.

Elimino el archivo /var/run/docker.sock
¿Cómo podría corregir?

@pixies reinicia el servicio docker debería recrearlo

Esta es la respuesta correcta. En muchos casos, deberá cerrar la sesión y volver a iniciarla para que el cambio surta efecto. Ejecutar el comando con sudo también funcionará, pero agregar los usuarios necesarios al grupo de docker es una mejor solución para que no tenga que otorgar acceso a sudo.

leoyuholo comentó el 14 de mayo de 2015

Se resuelve agregándome al grupo de usuarios 'docker'

Intente ejecutar el siguiente comando para agregarse al grupo
usermod -aG docker ${USER}

O puede ejecutar el siguiente comando para averiguar a qué grupos pertenece
groups $USER

Parece que realmente funciona si reinicia una máquina.

@alexanderadam ¿encontraste alguna solución? tengo el mismo error ahora

@CnytSntrk lo siento, resolví el problema de lo contrario. :guiño:
Pero buena suerte: four_leaf_clover: ¡encontrando una solución!

@alexanderadam gracias: +1:

Acabo de resolver mi problema ejecutando el comando "docker-compose run ..." con sudo.

Resolví el problema agregando sudo

reiniciar me hizo el truco

También tuve el problema después de agregar un usuario al grupo de Docker para evitar sudo. ¡Reiniciar resolvió todo! Gracias

después de agregar un usuario al grupo de Docker, no es necesario reiniciar, simplemente cierre la sesión e inicie sesión, funciona para mí

Probé antes de Rahman. No funcionó. Gracias de cualquier manera

+1

Esto sigue siendo un problema en Ubuntu 16.04 y agregarme al grupo de docker, luego el relogue funcionó. Este problema no debe cerrarse.

Ubuntu 16.04
https://github.com/docker/compose/issues/1214#issuecomment -102246925
Funciona perfecto pero reinicia antes

Ubuntu 16.04 tiene el mismo error

Solución (de https://docs.docker.com/engine/installation/linux/debian/, no solo funciona con Debian):

Agregue el grupo de docker si aún no existe.
sudo groupadd docker

Agregue el usuario conectado "$ {USER}" al grupo de Docker.
Cambie el nombre de usuario para que coincida con su usuario preferido.
Puede que tenga que cerrar la sesión y volver a iniciarla
esto surta efecto.
sudo gpasswd -a ${USER} docker

Reinicie el demonio de Docker.
sudo service docker restart

@mikevoets sí, creo que eso debería resolver este problema.

Sucedió lo mismo en una nueva instalación y me di cuenta de que era porque no estaba usando 'sudo'.

¿Alguien sabe cómo ejecutarlo sin usar sudo?

Ver mi respuesta Marco

2016-11-08 0:15 GMT + 01: 00 Marco Ordonez [email protected] :

¿Alguien sabe cómo ejecutarlo sin usar sudo?

-
Estás recibiendo esto porque te mencionaron.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/docker/compose/issues/1214#issuecomment -258994514,
o silenciar el hilo
https://github.com/notifications/unsubscribe-auth/AEN6D4Gfir0gehnbenS0IT65wLHAo2VWks5q77ERgaJpZM4D2vHs
.

@ mordonez-me, será útil agregarlo al grupo de Docker.

sudo gpasswd -a ${USER} docker

En general, tengo los siguientes pasos de instalación en Centos 7 con root usuario:

# Remove SELinux for dev VMs
yum remove -y selinux*
# Docker
curl -fsSL https://get.docker.com/ | sh
systemctl enable docker
systemctl restart docker
curl -L https://github.com/docker/compose/releases/download/1.8.1/docker-compose-`uname -s`-`uname -m` \
  > /usr/bin/docker-compose
chmod +x /usr/bin/docker-compose
gpasswd -a vagrant docker

Y después de eso, funciona bien con mi usuario no root vagrant .

esto solo funcionó para mí después de iniciar y cerrar sesión después de agregar mi usuario al grupo de Docker.

FWIW, necesitaba reiniciar el sistema antes de que comenzara a funcionar para mí. Esto fue probablemente debido al hecho de los linux-image-extra-* kernel paquetes estaban recién instalados como lo requiere la ventana acoplable en Ubuntu Xenial . Consulte Requisitos previos por versión de Ubuntu .

Intente ejecutar dockerd o sudo dockerd si es necesario primero para iniciar el demonio. Si comienza dockerd con sudo es posible que desee ejecutar docker-compose up con sudo también. de lo contrario, está bien.

Dado que usé algunos de los comandos sugeridos en este hilo, quería compartir mis experiencias.

Tengo la siguiente configuración en Vagrantfile :

config.vm.provision "docker"
config.vm.provision "shell", inline: "docker ps", privileged: false
# or
# config.vm.provision "shell", inline: "docker-compose ps", privileged: false

Recibo el siguiente problema:

  • cuando intento usar Docker:

    Cannot connect to the Docker daemon. Is the docker daemon running on this host?
    
  • cuando intento usar Docker Compose:

    ==> default: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?
    ==> default: 
    ==> default: If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
    

Gracias a este comentario lo hice funcionar.

Solución:

config.vm.provision "docker"
# The following line terminates all ssh connections. Therefore
# Vagrant will be forced to reconnect.
# That's a workaround to have the docker running with the vagrant user
config.vm.provision "shell", inline:
   "ps aux | grep 'sshd:' | awk '{print $2}' | xargs kill", privileged: true
config.vm.provision "shell", inline: "docker ps", privileged: false

este no es un problema relacionado con Docker, sino más bien un problema de permisos de socket de linux (problema muy común entre php-fpm y nginx).

1) Docker es una aplicación clásica de cliente / servidor HTTP, el cliente hablará a través de un socket o IP con el servidor
2) El socket es un archivo linux, con permiso, pertenece a un usuario y a un grupo:

    sudo ls -alh /var/run
    ...
    srw-rw---- 1 root staff    0 Jan 22 10:09 docker.sock
    ....

3) Al hacer docker ps , debe tener permiso para acceder al archivo docker.sock

En este caso, simplemente haga sudo usermod -aG staff [ME] para agregarlo al grupo correcto (generalmente es docker ) (lo mismo con php-fpm, donde el grupo generalmente es www-data).

Tuve el problema de que usé pip install docker-compose . Lo desinstalé y usé sudo pip install docker-compose . Ahora funciona el comando sudo docker-compose up .

Espero que ayude.

Siempre que tenga problemas de autenticación con una instalación de pip, es mejor usar pip install [paquete] —usuario que usar sudo; en algunos casos, usar sudo causará problemas de autenticación mientras se ejecuta la aplicación.

El 25 de enero de 2017, a las 5:38 p.m., oesah [email protected] escribió:

Tuve el problema de que usé pip install docker-compose. Lo desinstalé y usé sudo pip install docker-compose. Ahora el comando sudo docker-compose up funciona.

Espero que ayude.

-
Estás recibiendo esto porque comentaste.
Responda a este correo electrónico directamente, véalo en GitHub https://github.com/docker/compose/issues/1214#issuecomment-275255529 , o silencie el hilo https://github.com/notifications/unsubscribe-auth/AMoEJ_g9iZOd2_BQUgaqgyk2mPLIv43eks5rV884Aga2JpH .

en Fedora Linux
agregue su usuario al grupo de Docker
sudo usermod -aG docker username

después de reiniciar este comando, el cierre de sesión no es suficiente como en otras distribuciones

Nada mejor que recomendar el documento oficial:

https://docs.docker.com/engine/installation/linux/linux-postinstall/

mira esto.

El documento oficial es siempre el primer lugar al que debe acudir en busca de ayuda.

Así que terminé agregando al usuario al grupo de Docker:

sudo groupadd docker
sudo usermod -aG docker $USER
sudo service docker restart

Todavía tenía problemas de conexión cuando ejecutaba docker ps cuando el usuario me daba el siguiente error:

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.27/containers/json: dial unix /var/run/docker.sock: connect: permission denied

Reiniciar el servidor solucionó este problema, lo que me permitió ejecutar comandos de la ventana acoplable como usuario sin usar sudo:

sudo reboot now
... (wait for boot) ...
ssh server
docker ps

EDITAR:

Se mencionó que solo necesita cerrar sesión / iniciar sesión para que esto se actualice, no es necesario reiniciar para ejecutar comandos de la ventana acoplable sin sudo después de agregar el usuario al grupo de la ventana acoplable.

usar sudo lo resolvió para mí también

Sin cerrar sesión:

sudo usermod -aG docker $USER
su $USER -

Como se mencionó anteriormente, de hecho:

sudo usermod -aG docker $USER

Cerrar sesión.
Iniciar sesión.
Hecho.

Tuve el mismo problema y en mi caso la causa fue que tenía algunos archivos en la carpeta con Dokcerfile a los que no tenía derechos de acceso. Después de ejecutar chown todo comenzó a funcionar bien.
La solución con usermod no me ha funcionado.

ACTUALIZAR
Me ha vuelto a pasar y esta vez la solución fue eliminar todos los contenedores docker con:

docker ps -aq | xargs docker rm

En realidad, se trata de un problema de instalación. Consulte la página oficial para la postinstalación. Resuelvo este problema con la ayuda del documento.

Como dijo @ TrkiSF2 anteriormente. Después de agregar su usuario al grupo de la ventana acoplable, debe cerrar la sesión y volver a iniciarla para que surtan efecto.

Se le negó el permiso al intentar conectarse al socket del demonio de Docker en unix: ///var/run/docker.sock: Obtenga http: //%2Fvar%2Frun%2Fdocker.sock/v1.29/containers/json: dial unix /var/run/docker.sock: connect: permiso denegado

solución: # chmod -Rf 777 /var/run/docker.sock

Reinicio resuelto después de hacer

sudo usermod -aG docker $ {USER}

Tengo este problema con la gota del océano digital. La configuración de droplet en la administración interna del kernel solucionó este problema https://www.digitalocean.com/community/tutorials/how-to-update-a-digitalocean-server-s-kernel#setting -up-the-droplet-for -gestión-interna-del-kernel

Tuve este problema en un repositorio de código que se estaba construyendo bien en un momento y luego no. Tenía otros repositorios en la misma máquina y la misma cuenta que se construyó bien, por lo que no fue un problema de grupos ni nada con la configuración del sistema. No tenía ningún conjunto de var env DOCKER_HOST. Sospecho que este error puede ser causado por una variedad de razones, pero para mí terminó siendo la propiedad raíz de los artefactos de compilación en el directorio de repositorio. sudo chown -R todos los archivos en el repositorio de la cuenta de usuario me solucionaron el problema.

Yo personalmente probé la solución de @cloojure y funcionó. Pero solo después de agregarme al grupo de docker y volver a iniciar sesión. La parte de volver a iniciar sesión es esencial

Me encontré con este mismo mensaje de error, y al igual que ChrisPappalardo , se debió a un problema de permiso de archivo, no al demonio. sudo chown -R en los activos de construcción lo arreglaron.

Recibo el mismo mensaje de error cuando ejecuto "docker-compose build".
Así que agregué el comando sudo y funciona bien. ($ sudo docker-compose build)

esta podría ser otra solución:
sudo chmod 777 /var/run/docker.sock

@Farada es peligroso cambiar los permisos; tener acceso a la API de Docker es equivalente a tener acceso de root en su máquina; cambiar los permisos a 777 le da acceso a cualquier persona en la raíz del host.

Agregar su usuario al grupo de docker es la solución para esto, como se mencionó anteriormente, debe reiniciar su servidor / computadora. ¡Por favor no modifique nada al 777!

Si instaló Docker usando el comando sudo, intente sudo YOUR_COMMAND.

En mi caso, Docker creó carpetas y archivos en la carpeta de mi proyecto cada vez que ejecuté el contenedor (uso volúmenes para vincular todas las fuentes, etc.).

De forma predeterminada, una imagen de la ventana acoplable se ejecuta con el usuario raíz, y esto es lo que causó el problema. Siempre que ejecuté procesos de compilación en mi imagen, los archivos de salida tendrían establecidos los permisos root:root , lo que se refleja en mi
sistema de archivos.

Resulta que este error se produce cuando Docker no puede acceder a estos archivos, porque cuando se inicia la compilación, se ejecuta como el usuario con el que ejecutó el comando. Cuando llega a los directorios / archivos con root:root , saldrá de la fianza y dará un error genérico ....is it running? cuando debería decir permission denied in X, cannot continue .

En mi caso, acabo de agregar los archivos que genera mi imagen de Docker en .dockerignore y se resolvió al instante.

Básicamente, me dieron un error no relacionado.

Editar Veo a mucha gente usando sudo como alma. La razón por la que esto funciona "mágicamente" es por los problemas que describo en este comentario. Cuando se ejecuta bajo sudo, los permisos ya no son un problema ya que se ejecuta como root. ¡Esto no es una solución!

He estado recibiendo esto:

 docker-compose build
db uses an image, skipping
Building web
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.

El problema era que algunos archivos en el contexto del Dockerfile tenían permisos restrictivos, un sudo chown -R damo ./* solucionó rápidamente.

Sin embargo, diría que de hecho hay un problema con docker-compose aquí: debería haber recibido un mensaje de error informativo que especifica con precisión que falló debido a un error de permisos, en lugar de un error de conexión ambiguo que fue una pista falsa en mi caso, ya que perdí el tiempo jugando con el servicio del demonio docker en sí.

Lo tengo unas cuantas veces.

Para mí no es un problema de configuración. En cambio, parece que Docker muere y se detiene, durante algún evento todavía no puedo decir cuándo ocurre.

De todos modos, si mi intuición es correcta, la solución podría ser sudo service docker restart pero aparentemente esto no es suficiente.

Entonces, al final, la única solución que funciona es reiniciar .

El demonio de la ventana acoplable se une a un socket Unix en lugar de a un puerto TCP. Por defecto, ese socket Unix es propiedad del usuario root y otros usuarios solo pueden acceder a él usando sudo. El demonio de la ventana acoplable siempre se ejecuta como usuario root. Instalación posterior de Linux

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

recordatorio: (recuerde reiniciar la sesión o reiniciar la máquina virtual)

  • Si realiza la prueba en una máquina virtual, es posible que sea necesario reiniciar la máquina virtual para que los cambios surtan efecto.
  • En un entorno de escritorio Linux como X Windows, cierre la sesión por completo y luego vuelva a iniciarla.

Yo tuve el mismo problema. Como otros han mencionado, cuando ejecuté el docker-compose con sudo, funcionó.

Hola, chicos, enfrenté el mismo problema mientras uso Fedora 26 y luego encontré la solución para Fedora 25, pero funciona para mí.

Aquí está el fragmento:

$ sudo groupadd docker && sudo gpasswd -a ${USER} docker && sudo systemctl restart docker
$ newgrp docker

REF: https://developer.fedoraproject.org/tools/docker/docker-installation.html

Espero te ayude, gracias

sudo systemctl status docker.service -l es muy útil para encontrar el problema real.

Tuve lo mismo pero solo con docker-compose build . Esto finalmente fue solo un problema de permisos de archivos. Creé archivos dentro del contenedor, propiedad de root, y no se pudo compilar con esos archivos. Simplemente hice un sudo chown -R $USER . y funciona.

Estaba teniendo el mismo error al crear un contenedor mysql después de haber eliminado el anterior.
La razón fue que tenía una carpeta de datos (para persistencia) que era propiedad del usuario en el contenedor anterior.
La solución fue eliminar la carpeta de datos. Advertencia: perderá sus datos. Si desea conservar sus datos, tal vez mueva la carpeta de datos o asigne nuevos propietarios.

Hice el truco agregándome al grupo
usermod -aG docker $ {USER}

reinicia y funciona!

Para mí, esto se resolvió iniciando sesión en modo administrador: sudo -s

¡Si esto ayuda!

Obtuve este mismo mensaje de error usando un nombre de imagen que contiene un carácter "+". (Esto ocurrió porque estaba nombrando mis imágenes después de una identificación de control de versión).

Por ejemplo, un docker-compose.yaml contiene:

services:
  foobar:
    image: "foobar:a-b+c"
    ....

falla con

Building foobar
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.

Pero eliminar el "+" del nombre de la imagen funcionó bien.

@fabiopaiva No estoy seguro de si alguien le respondió, pero debe ser exclusivo de sudo al principio porque cualquier usuario que pueda ejecutar el comando docker puede convertirse en sudo
Cualquiera con acceso a la ejecución de la ventana acoplable puede iniciar una ventana acoplable simple, vincular todo el sistema de archivos del host y acceder a él como raíz (es decir, archivos de sombra para contraseñas o modificar permisos para todo el sistema).
Por lo tanto, debe tener mucho cuidado con quién puede usar este comando.

Gracias @Gronan , no recuerdo claramente este hilo.
Pero, con respecto a su explicación, si ejecuta con sudo, le da este control de todos modos.
Gracias por la explicación

No necesito sudo.
Agregue su usuario al grupo de docker, docker
y reinicie el servicio de la ventana acoplable, reinicie el servicio de la ventana acoplable o, systemctl reinicie el puerto.

No es necesario reiniciar el sistema.

Este problema está relacionado con cómo se ejecuta un proceso de Linux bajo qué usuario y qué grupo y qué sucede cuando cambia la membresía al grupo de procesos y cómo se hará efectivo.

usermod -aG docker ${USER}
luego _reboot_.

Esto se debe a que el demonio de la ventana acoplable se ejecuta como usuario raíz y la ventana acoplable componen como un usuario normal.

Tres pasos para solucionarlo:

  1. docker sudo groupadd
  2. sudo usermod -aG docker $ USER
  3. Reinicie para actualizar los cambios.

Más detalles en:
https://docs.docker.com/engine/installation/linux/linux-postinstall/#manage -docker-as-a-non-root-user

En lugar de reiniciar, puede simplemente escribir su - ${USER} . Supongo que esto recarga al usuario actualmente activo en la Terminal.

https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-16-04

Esto funcionó para mí sin el reinicio:

  1. Agregar grupo de ventana acoplable:
    sudo usermod -aG docker ${USER}
  2. correr
    id
  3. Si el grupo 'docker' no aparece en la lista de grupos, cierre la sesión y vuelva a iniciar sesión

Mi problema terminó siendo que en mi contexto de compilación de la ventana acoplable, tenía archivos que no eran propiedad de mi usuario ni de mi grupo. Por ejemplo, monté una carpeta en mi contexto de compilación de la ventana acoplable en un contenedor mongo, por lo que estos archivos eran propiedad del usuario y grupo mongodb. Para solucionar esto, simplemente eliminé esa carpeta y utilicé un volumen generado por docker para mi servicio mongodb en su lugar, y luego pude ejecutar docker-compose sin sudo

Puedo confirmar la observación de @alexcdot : tenía archivos en el repositorio de mi proyecto propiedad de root (no sé cómo llegaron allí). Eliminarlos resolvió el problema. Ahora puedo ejecutar docker-compose sin privilegios de sudo.

También confirmando la solución @alexcdot y @ tbuss93 . A mi también me sirvió. Creo que en tal caso, el error debería ser más fácil de usar e idealmente mostrar archivos problemáticos.

Hoy tuve este problema con un nuevo portátil Dev. Lo resolví así
1) Detener Docker

sudo service docker stop

si observa este permiso de archivo, verá que sin sudo no podrá obtener acceso al demonio de Docker

sudo ls -la /var/run/docker.sock
srw-rw---- 1 root docker 0 Dec 21 19:16 /var/run/docker.sock

2) Elimino este docker.sock

sudo rm  /var/run/docker.sock

gracias @rbahumi
3) ejecuto este comando

sudo usermod -aG docker ${USER}

y ahora casi ha terminado, simplemente cierre la sesión o mejor reinicie la computadora, no tiene que iniciar el servicio porque se inicia automáticamente

@ cooljl31 parece innecesario eliminar el socket, ya que los permisos muestran que los miembros del grupo de docker tienen acceso rw. Sin embargo, tendrá que reiniciar la ventana acoplable y la sesión.

Esta solución, sin embargo, parece no estar relacionada con el problema.

Esto resolvió mis problemas: https://docs.docker.com/install/linux/linux-postinstall/#manage -docker-as-a-non-root-user
Solo recuerde cerrar la sesión y volver a iniciarla. Ejecute los comandos como el usuario que desea utilizar Docker.

sudo usermod -aG nombre de usuario

luego Cerrar sesión e iniciar sesión para que funcione.

Funcionó como un encanto para mí.

También tuve que iniciar el servicio docker manualmente después de una nueva instalación de docker-ce (17.12.0 ~ ce-0 ~ ubuntu) y docker-compose para que el mensaje de error desapareciera:

sudo service docker start

Seguir los pasos descritos en la documentación resolvió el problema con mi nueva instalación de Ubuntu 16.04.

Sin embargo, tuve que reiniciar el sistema después de aplicar esos cambios.

Utilice el comando: sudo docker-compose up -d

si te encontraras:
$ docker-componer
ERROR: No se pudo conectar al demonio de Docker en http + docker: // localunixsocket - ¿se está ejecutando?

Si se encuentra en una ubicación no estándar, especifique la URL con la variable de entorno DOCKER_HOST.

Debe verificar si el usuario de inicio de sesión actual pertenece al /var/run/docker.sock grupo de usuarios docker .
Intente ejecutar Redactar como sudo.

Para resolver esto sin sudo haga lo que dijo @leoyuholo en el segundo comentario, cierre la sesión y vuelva a

Recibo el mismo mensaje de error cuando ejecuto Docker.
Se resuelve agregándome al grupo de usuarios 'docker'

Intente ejecutar el siguiente comando para agregarse al grupo usermod -aG docker $ {USER}

O puede ejecutar el siguiente comando para averiguar a qué grupos pertenece $ USER

Después de eso, cierre la sesión y vuelva a iniciarla y funciona

enlace para comentar https://github.com/docker/compose/issues/1214#issuecomment -102246925

PD. esto es para personas como yo que se saltan los primeros comentarios -_-

Solo porque me toma mucho tiempo volver a descubrir esto, y es lo primero que encontré en Google. No hay nada de malo con mis permisos de usuario en mi computadora portátil. El problema eran los permisos de archivo en una de las carpetas montadas. Si arregla los permisos para que no necesite root para acceder a ellos, o los borra (en mi caso, son activos almacenados en caché para rieles), se procesa correctamente.

El problema real es que el mensaje de error no le dice cuál es el problema específico cuando construye a través de docker-compose.

También conocí el problema. Es un problema de acceso de los usuarios.
Lo resolví instalando docker-compose en modo raíz y ejecuté docker-compose también en modo raíz.

@zjhken eso no es realmente una solución, sino más bien una solución.
Hay algún problema con los permisos de archivo en la carpeta de su proyecto o con los permisos de su grupo. Vea @alexcdot y mis observaciones para el primer caso, e intente sudo usermod -aG docker <your username> seguido de volver a iniciar sesión para el último.

@ tbuss93 tienes razón. He usado tu solución para resolverlo. Funciona. Ésta podría ser la mejor solución.

escribir => sudo docker info

¡Simplemente agregue sudo antes del comando que está intentando ejecutar!

Entonces, en mi caso, el usuario gitlab_ci_multi_runner es parte del grupo Docker. Entonces ese no es mi problema:

groups $USER
   gitlab_ci_multi_runner : gitlab_ci_multi_runner docker

Pero, por alguna razón, sigo recibiendo ALGUNAS VECES (observe que este es a veces el caso): Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

¿Significa que tengo la sensación de que mi daemon se bloquea o es inestable? Esto no es útil, ya que me gustaría tener una integración continua estable y confiable usando Docker. ¿Alguna idea de cómo podría depurar más esta inestabilidad?

¡Gracias!

Gente, primero me disculpo por mi inglés. Tengo el mismo problema, pero me doy cuenta de que sucede en konsole dentro de kde, pero cuando ejecuto una terminal crt alt f1 no necesito usar sudo. Ya tengo $ USER en el grupo de docker. Espero que me entiendas.- Gracias

Solo corre;

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

Yo también enfrenté el problema 'No puedo conectarme al demonio de Docker en unix: ///var/run/docker.sock. ¿Se está ejecutando el demonio docker? Más tarde me di cuenta de lo siguiente.

[ ec2-user @ ip-172-28-6-201 docker-elk] $ que docker-compose
/ usr / local / bin / docker-compose
[ ec2-user @ ip-172-28-6-201 docker-elk] $ qué
/ usr / bin / docker-compose

Dado que el binario docker-compose está dentro de / usr / local, pude ejecutar el comando docker-compose sin 'sudo'. Para ejecutar el comando 'docker', necesitaba acceso a sudo.

Lo arreglé usando los siguientes comandos.

cp / usr / local / bin / docker-compose / usr / bin / docker-compose
chmod + x / usr / bin / docker-compose
sudo rm / usr / local / bin / docker-compose

Ahora verifique que el comando 'docker-compose' necesita 'sudo' para ejecutarse.
Después de ejecutar los pasos anteriores, el comando docker-compose funciona para mí.

después de agregar un usuario al grupo de Docker
reiniciar la máquina será suficiente.

Para mí está funcionando.
[ ec2-user @ ip-172-31-7-179 docker-elk] $ sudo docker-compose up -d

Mi docker y la versión de composición de docker son.

[ ec2-user @ ip-172-31-7-179 docker-elk] $ sudo docker versión
Cliente:
Versión: 17.06.2-ce
Versión de API: 1.30
Go versión: go1.8.4
Confirmación de Git: 3dfb8343b139d6342acfd9975d7f1068b5b1c3d3
Construido: Vie Nov 10 00:50:37 2017
SO / Arch: linux / amd64

Servidor:
Versión: 17.06.2-ce
Versión API: 1.30 (versión mínima 1.12)
Go versión: go1.8.4
Confirmación de Git: 402dd4a / 17.06.2-ce
Construido: Vie Nov 10 00:51:08 2017
SO / Arch: linux / amd64
Experimental: falso
[ ec2-user @ ip-172-31-7-179 docker-elk] $ sudo docker-compose versión
docker-compose versión 1.21.2, compilación a133471
versión de docker-py: 3.4.0
Versión de CPython: 2.7.12
Versión de OpenSSL: OpenSSL 1.0.2k-fips 26 de enero de 2017

después de seguir el procedimiento de agregar usuario, asegúrese de reiniciar su máquina.

Puedo producir este mensaje de manera confiable con un proyecto estructurado como este:

├── docker-compose.yml
├── Dockerfile
└── volúmenes

Si 'volúmenes' excede un cierto tamaño, aparece el siguiente error cuando ejecuto 'docker-compose build':

  • > ERROR: No se pudo conectar al demonio de Docker en http + docker: // localunixsocket - ¿se está ejecutando? Si se encuentra en una ubicación no estándar, especifique la URL con la variable de entorno DOCKER_HOST.

Ejecutar el comando con sudo comienza a construir la imagen, pero es bueno no tener que depender de sudo para la automatización.

Parece que la causa de este problema en mi instancia es que mi directorio de volúmenes se pasa al contexto de compilación . Supongo que hay alguna limitación para los usuarios que no son sudo para el tamaño del contexto de compilación. o tiempo de espera?

Entonces, en mi caso, la solución es mover el directorio de volúmenes o agregarlo a un .dockerignore, resolviendo este tipo particular de este mensaje de error.

cd / var / ejecutar
sudo chmod 777 docker.sock
sudo service docker start
Docker ejecutar hello-world
¡Hola de Docker!
Este mensaje muestra que su instalación parece estar funcionando correctamente.

Resuelve el problema :)

resuelto con sudo

Si todo lo que se dice aquí no funciona, vuelva a instalar Docker. Funcionó para mí.

En mi experiencia, no es necesario reiniciar la máquina, lo cual es útil si se encuentra en un entorno de producción: después de sudo usermod -aG docker $USER , cierre la sesión y vuelva a iniciarla. Eso debería transferir la asignación del nuevo grupo de usuarios a cualquier programa o aplicación que lo necesita.

De lo contrario , la respuesta de root y docker tengan acceso a los docker.sock y chmod 777 darán acceso rwx a cada usuario.

/usr/lib/python2.7/dist-packages/requests/__init__.py:80: RequestsDependencyWarning: urllib3 (1.23) or chardet (3.0.4) doesn't match a supported version!
  RequestsDependencyWarning)
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.

Estaba teniendo el mismo problema ahora con $ sudo docker-compose . Primero me convertí en root haciendo $ sudo su , y luego ejecuté docker-compose normalmente.

use este enlace para resolver el problema, ya que funciona para mí. Tuve el mismo problema pero ahora funciona bien

https://techoverflow.net/2017/03/01/solving-docker-permission-denied- while-trying-to-connect-to-the-docker-daemon-socket/

Recibo el mismo mensaje de error cuando ejecuto Docker.
Se resuelve agregándome al grupo de usuarios 'docker'

Intente ejecutar el siguiente comando para agregarse al grupo
usermod -aG docker ${USER}

O puede ejecutar el siguiente comando para averiguar a qué grupos pertenece
groups $USER

Y luego reinicia tu computadora

Este hilo es útil.

Entré al mismo problema. Por el contrario, agregué sudo al comienzo de mi línea de comando y ¡se resolvió!

Solo corre;

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

Este funcionó para mí. No estoy seguro de por qué agregar $ USER al grupo de docker no lo resolvió.
Editar: resulta que el servicio docker regenera /var/run/docker.sock cada vez que se recarga. Necesita rehacer dicho truco cada vez que reinicia la ventana acoplable (no sucederá demasiado, ¿eh?)

¿Fue útil esta página
0 / 5 - 0 calificaciones