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 ...
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:
DOCKER_
env, que a menudo se hace ejecutando eval $(docker-machine env default)
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
Haciendo esto, soluciono mi problema:
https://techoverflow.net/2017/03/01/solving-docker-permission-denied- while-trying-to-connect-to-the-docker-daemon-socket/
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)
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:
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:
sudo usermod -aG docker ${USER}
id
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':
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
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?)
Comentario más útil
Soleved para mí también con el comando sudo