the sock running run que hub facil desde crear contenedor cero cannot linux ubuntu docker daemon

linux - sock - El comando Docker no se puede conectar al demonio Docker



docker linux (23)

Quiero mudarme a Docker, así que acabo de empezar a jugar con eso. He instalado Docker en una instalación de VirtualBox Ubuntu 15.10 (Wily Werewolf) y, como se sugiere aquí , intenté ejecutar una imagen básica de nginx Docker:

$ docker run --name mynginx1 -P -d nginx Cannot connect to the Docker daemon. Is the docker daemon running on this host?

Así que verifiqué si Docker se estaba ejecutando:

$ sudo service docker status ● docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since vr 2015-11-06 08:41:48 CET; 15min ago Docs: https://docs.docker.com Main PID: 7542 (docker) CGroup: /system.slice/docker.service └─7542 /usr/bin/docker daemon -H fd:// nov 06 08:41:47 kramer65-VirtualBox systemd[1]: Starting Docker Application Container Engine... nov 06 08:41:47 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:47.900410966+01:00" level=info msg="API ...ock" nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.033514149+01:00" level=info msg="Fire...lse" nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.141594321+01:00" level=info msg="Defa...ess" nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.416294436+01:00" level=warning msg="Y...it." nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.565507576+01:00" level=info msg="Load...rt." nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.567907022+01:00" level=info msg="Load...ne." nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.567945214+01:00" level=info msg="Daem...ion" nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.567969891+01:00" level=info msg="Dock....9.0 nov 06 08:41:48 kramer65-VirtualBox systemd[1]: Started Docker Application Container Engine. Hint: Some lines were ellipsized, use -l to show in full.

Esto sugiere que el demonio Docker ya se está ejecutando, pero para estar seguro, acabo de iniciar el demonio Docker manualmente:

$ sudo docker daemon INFO[0000] API listen on /var/run/docker.sock INFO[0000] [graphdriver] using prior storage driver "aufs" INFO[0000] Firewalld running: false INFO[0000] Default bridge (docker0) is assigned with an IP address XXX.XX.X.X/XX. Daemon option --bip can be used to set a preferred IP address WARN[0000] Your kernel does not support swap memory limit. INFO[0000] Loading containers: start. INFO[0000] Loading containers: done. INFO[0000] Daemon has completed initialization INFO[0000] Docker daemon commit=76d6bc9 execdriver=native-0.2 graphdriver=aufs version=1.9.0

Luego intenté ejecutar la imagen nuevamente, pero con el mismo resultado:

$ docker run --name mynginx1 -P -d nginx Cannot connect to the Docker daemon. Is the docker daemon running on this host?

Intenté sudo''ing el comando, pero fue en vano. ¿Qué estoy haciendo mal aquí?


Otorgar acceso no root - desde la docker

Agregue el grupo acoplable si aún no existe.

$ sudo groupadd docker

Agregue el usuario conectado "$ {USER}" al grupo acoplable.

Cambie el nombre de usuario para que coincida con su usuario preferido.

Puede que tenga que cerrar sesión y volver a iniciarla para que esto surta efecto.

$ sudo gpasswd -a ${USER} docker

Reinicia el demonio Docker.

$ sudo service docker restart


  1. También tuve el mismo problema. El problema estaba en los sockets asignados a docker-daemon y docker-client.
  2. Primero, no se estableció el permiso para el docker-client en docker.sock. Puede configurarlo usando "sudo usermod -aG docker $ USER"
  3. Luego verifique su archivo bash donde se está ejecutando el docker-client, para mí estaba en 0.0.0.0:2375, mientras que docker-daemon se estaba ejecutando en el socket Unix (se configuró en el archivo de configuración de dockerd).
  4. Solo comente la línea bash y funcionará bien.
  5. Pero si desea que funcione en el puerto TCP en lugar del socket Unix, cambie el archivo de configuración de dockerd y configúrelo en 0.0.0.0.2375 y mantenga la línea en bash como está si está presente o configúrelo en 0.0.0.0: 2375.

A medida que Docker se une a un socket Unix que es propiedad de root mientras se inicia, el uso de ''sudo'' junto con los comandos de Docker funcionará.


Agregar usuario actual al grupo acoplable:

sudo usermod -aG docker $(whoami)


Agregue el usuario al grupo acoplable

  • Agregue el grupo acoplable si aún no existe:

    sudo groupadd docker

  • Agregue el usuario conectado "$ {USER}" al grupo acoplable:

    sudo gpasswd -a ${USER} docker

  • Reinicia el demonio Docker:

    sudo service docker restart

  • Haga una newgrp docker o newgrp docker sesión / inicie sesión para activar los cambios en los grupos.


Debe agregar su usuario actual al grupo de acopladores de la siguiente manera:

sudo usermod -aG docker $(whoami)

luego cierre sesión e inicie sesión nuevamente en el sistema o reinicie el sistema. prueba por docker version

Para obtener más información sobre cómo instalar Docker-Engine, siga la documentación de Docker


Después de instalar Docker en Ubuntu, ejecuté el siguiente comando:

sudo service docker start

¿Lo has probado?


Después de instalar todo e iniciar el servicio, intente cerrar su terminal y ábralo nuevamente, luego intente extraer su imagen

Editar

También tuve este problema nuevamente, si la solución anterior no funciona, intente esta solución que es el siguiente comando

sudo mv /var/lib/docker/network/files/ /tmp/dn-bak

Consideraciones

Si el comando anterior funciona, probablemente tenga problemas con el acoplador de red, de todos modos esto lo resuelve, para confirmar eso, vea el registro con el comando a continuación

tail -5f /var/log/upstart/docker.log

Si la salida tiene algo así

FATA[0000] Error starting daemon: Error initializing network controller: could not delete the default bridge network: network bridge has active endpoints /var/run/docker.sock is up

Realmente tiene problemas de red, sin embargo, aún no sé si la próxima vez que reinicie ( actualización , 2 meses sin problemas nuevamente) su sistema operativo volverá a tener este problema y si es un error o un problema de instalación

My docker version

Client: Version: 1.9.1 API version: 1.21 Go version: go1.4.2 Git commit: a34a1d5 Built: Fri Nov 20 13:12:04 UTC 2015 OS/Arch: linux/amd64 Server: Version: 1.9.1 API version: 1.21 Go version: go1.4.2 Git commit: a34a1d5 Built: Fri Nov 20 13:12:04 UTC 2015 OS/Arch: linux/amd64


Esta pregunta es actualmente el número 3 en una búsqueda de Google. Después de investigar un poco para resolver este problema en mi sistema Linux, pensé en escribir esta respuesta. La publicación original indica que el problema está en Ubuntu, pero también experimenté el problema usando Fedora. Con eso en mente, esto es lo que hice para solucionar el problema.

En Fedora 22

Instalación de Docker:

$> curl -fsSL https://get.docker.com/ | sh

Después de instalar Docker:

Se debe agregar un usuario al grupo acoplable.

$> sudo usermod -aG docker

El Docker Daemon necesita ser iniciado

$> sudo service docker start

Puedes configurar el demonio para que comience en el arranque

$> sudo chkconfig docker on

Puede verificar que el servicio Docker se esté ejecutando

$> service docker status

Y un último cheque final

$> docker run hello-world


Intenta usar "sudo" con el comando que estás ejecutando.


Me he enfrentado al mismo error en la instancia de Amazon EC2. El problema se solucionó después de reiniciar la instancia.


Nota personal: me sale el error del título de la pregunta cuando olvido ejecutar el comando docker con sudo :

sudo docker run ...

[Ubuntu 15.10]


Para OSX :

Después de abrir Docker e iniciar la máquina ''predeterminada'' a través de la Terminal de inicio rápido ( https://docs.docker.com/engine/installation/mac/ ), prueba los comandos de Docker y recibe este mensaje "no se puede conectar al Docker Daemon" , resulta que necesitas establecer algunas variables env :

eval "$(docker-machine env default)"

Luego pruébelo con docker run hello-world para ver si todo es color de rosa.


Para Ubuntu 16.04

/lib/systemd/system/docker.service archivo /lib/systemd/system/docker.service :

ExecStart=/usr/bin/dockerd fd://

con:

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375

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

DOCKER_OPTS=

con:

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

y luego reinicie su computadora.


Para aquellos que ya intentaron reiniciar su máquina, desarmar la variable de entorno DOCKER_HOST como se indica en la documentación de docker env y todo lo demás solo intente ir con el

sudo service docker restart

Solo esto me funcionó incluso después de reiniciar la máquina.


Por lo general, el siguiente comando hace el truco:

sudo service docker restart

Esto, en lugar de Docker, docker start para los casos en que Docker parece estar ejecutándose.

Si eso funciona, como se sugiere y en otra respuesta y sobre este problema de GitHub , si no se ha agregado al grupo de docker, hágalo ejecutando:

sudo usermod -aG docker <your-username>

Y lo más probable es que estés listo.

En cuanto a que alguien más se encuentre con esto, en la ventana acoplable de algunos sistemas operativos no se inicia inmediatamente después de instalarlo y, como resultado, can''t connect to daemon message aparece el mismo can''t connect to daemon message . En este caso, primero puede verificar que Docker no se esté ejecutando verificando el estado de su servicio de Docker ejecutando:

sudo service docker status

Si el resultado se parece a: docker stop/waiting lugar de docker start/running, process 15378 entonces obviamente significa que Docker no está activo. En este caso, asegúrese de comenzar con:

sudo service docker start

Y, como antes, lo más probable es que estés listo para ir.


Probado en Ubuntu 16.04

# Create the docker group and add your user to the docker group groupadd docker usermod -aG docker $USER newgrp docker # Configure docker service to be exposed mkdir -p /etc/systemd/system/docker.service.d echo -e ''[Service]/nExecStart=/nExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2376'' >> /etc/systemd/system/docker.service.d/override.conf # restart service systemctl daemon-reload service docker restart


Tal vez esto ayude a alguien, ya que el mensaje de error es extremadamente inútil, y he seguido todos los pasos de permiso estándar en numerosas ocasiones sin resultado.

Docker ocasionalmente deja variables de entorno fantasma en su lugar que bloquean el acceso, a pesar de que su sistema esté configurado correctamente. Los siguientes comandos de shell pueden hacer que sea accesible nuevamente, si lo ha ejecutado en un momento y simplemente dejó de cooperar después de un reinicio:

unset DOCKER_HOST unset DOCKER_TLS_VERIFY unset DOCKER_TLS_PATH docker ps

Tenía una instalación de Docker que funcionaba anteriormente, y después de reiniciar mi computadora portátil, simplemente se negó a funcionar. Se agregó correctamente al grupo de usuarios de Docker, tenía los permisos correctos en el socket, etc., pero aún no podía ejecutar el docker login docker run ... , docker run ... , etc. Esto me lo arregló. Lamentablemente tengo que ejecutar esto en cada reinicio. Esto se menciona en un par de problemas de github también como una solución alternativa, aunque parece un error que esta sea una barrera persistente para corregir el funcionamiento de Docker (nota: estoy en Arch Linux, no en OSX, pero este fue el mismo problema para yo).


Tengo el mismo problema al ejecutar Docker.

puedes ejecutar comandos como sudo user:

sudo docker ***your command here***


Tuve el mismo problema y lo que funcionó para mí fue:
Comprobación de la propiedad de /var/run/docker.sock

ls -l /var/run/docker.sock

Si no eres el propietario, cambia la propiedad con el comando

sudo chown *your-username* /var/run/docker.sock

Luego puede seguir adelante e intentar ejecutar los comandos de Docker sin problemas: D


Yo tuve el mismo problema. He estado luchando durante dos días para resolverlo.

Solo funcionó cuando lo hice:

  1. De acuerdo con el Tutorial de Docker , debe agregar la clave Docker si aún no se agregó usando:

    $ sudo wget -qO- https://get.docker.com/gpg | sudo apt-key add -

  2. Luego, asegúrese de otorgarse privilegios de docker a usted mismo usando:

    $ sudo usermod -aG docker $USER

Espero que esto le ayude también.


ingrese como root ( sudo su ) e intente esto:

unset DOCKER_HOST docker run --name mynginx1 -P -d nginx

Tengo el mismo problema aquí, y el comando docker solo funcionó ejecutándose como root, y también con este DOCKER_HOST vacío

PD: también ten en cuenta que la forma correcta y oficial de instalar en Ubuntu es usar sus repositorios apt (incluso en 15.10), no con esa cosa " wget ".


Para Ubuntu:
Sucedió conmigo cuando actualicé la ventana acoplable.
Debe desenmascarar el servicio y el socket y luego reiniciar el servicio.

Lo siguiente funcionó para mí:

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

Lo que pasó detrás de escena
systemd también tiene la capacidad de marcar una unidad como completamente inestable, automática o manualmente, vinculándola a / dev / null. Esto se llama enmascarar la unidad y es posible con el comando de máscara.

sudo systemctl mask docker.service

Puede consultar la lista de servicios enmascarados utilizando:

sudo systemctl list-unit-files

Para habilitar el inicio automático / manual del servicio, debe desenmascararlo con:

sudo sytemctl unmask docker.service

Ahora el servicio se habilitará como se muestra a continuación