Quiero hacer un cambio a Docker, así que acabo de empezar a jugar con él. Instalé 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 de Docker ya se está ejecutando, pero para asegurarme, acabo de iniciar el demonio de 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.XX/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.0Luego 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í?
Me he enfrentado al mismo error en la instancia de Amazon EC2. El problema se solucionó después de reiniciar la instancia.
Intente usar "sudo" con el comando que está ejecutando.
Después de instalar Docker en Ubuntu, ejecuté el siguiente comando:
sudo service docker start¿Lo has probado?
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 tenga 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 de " wget ".
Yo tuve el mismo problema. He estado luchando durante dos días para resolverlo.
Solo funcionó cuando lo hice:
De acuerdo con el Tutorial de Docker , debe agregar la clave de Docker si aún no se ha agregado usando:
$ sudo wget -qO- https://get.docker.com/gpg | sudo apt-key add -
Luego, asegúrese de otorgarse privilegios de Docker usando:
$ sudo usermod -aG docker $USER
Espero que esto le ayude también.
Debe agregar su usuario actual al grupo docker 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
nota personal: recibo el error del título de la pregunta cuando olvido ejecutar el comando docker con sudo :
sudo docker run ...
[Ubuntu 15.10]
Por lo general, el siguiente comando hace el truco:
sudo service docker restart Esto, en lugar de Docker docker start para los casos en los que parece que Docker ya se está ejecutando.
Si eso funciona, como se sugiere y en otra respuesta y en este problema de GitHub , si no se ha agregado a sí mismo en el grupo docker, hágalo ejecutando:
sudo usermod -aG docker <your-username>Y lo más probable es que estés listo para irte.
En cuanto a cualquier otra persona que se encuentre con esto, en la ventana acoplable de algunos sistemas operativos no se inicia inmediatamente después de instalarlo y, como resultado, 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 docker ejecutando:
sudo service docker status Si el resultado se parece a: docker stop/waiting en 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 startY, como antes, lo más probable es que esté listo para comenzar.
Después de instalar todo e iniciar el servicio, intente cerrar su terminal y abrirlo nuevamente, luego intente extraer su imagen
También tuve este problema nuevamente, si la solución anterior no funcionó, pruebe esta solución que es el siguiente comando
sudo mv /var/lib/docker/network/files/ /tmp/dn-bakSi el comando anterior funciona, es probable que tenga problemas con la ventana acoplable de red; de todos modos, esto lo resuelve, para confirmarlo, consulte el registro con el siguiente comando
tail -5f /var/log/upstart/docker.logSi 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 upRealmente 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.
Mi versión acoplable
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/amd64Agregar el usuario al grupo docker
Agregue el grupo docker si aún no existe:
sudo groupadd docker
Agregue el usuario conectado "${USER}" al grupo de acopladores:
sudo gpasswd -a ${USER} docker
Reinicie el demonio de Docker:
sudo service docker restart
Haga una newgrp docker o cierre sesión/inicie sesión para activar los cambios en los grupos.
Esta pregunta es actualmente la 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 al usar 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/ | shDespués de instalar Docker:
Se debe agregar un usuario al grupo docker.
$> sudo usermod -aG dockerEl demonio docker debe iniciarse
$> sudo service docker startPuede configurar el daemon para que comience en el arranque
$> sudo chkconfig docker onPuede verificar que el servicio docker se está ejecutando
$> service docker statusY un último control final
$> docker run hello-worldPara OSX :
Después de abrir la ventana acoplable 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 la ventana acoplable y recibe este mensaje "no se puede conectar al demonio de la ventana acoplable". , resulta que necesita algunas variables env establecidas :
eval "$(docker-machine env default)"
Luego pruébelo con docker run hello-world para ver si todo está bien.
Para aquellos que ya intentaron reiniciar su máquina, desactivar la variable de entorno DOCKER_HOST como se indica en la documentación de docker env y todo lo demás, simplemente intente ir con el
sudo service docker restartSolo esto funcionó para mí incluso después de reiniciar la máquina.
Tengo el mismo problema al ejecutar docker.
puede ejecutar comandos como usuario sudo :
sudo docker ***your command here***Para Ubuntu:
Me pasó cuando actualicé docker.
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 inarrancable, automática o manualmente, vinculándola a /dev/null. Esto se llama enmascarar la unidad y es posible con el comando enmascarar.
sudo systemctl mask docker.servicePuede consultar la lista de servicios enmascarados utilizando:
sudo systemctl list-unit-filesPara habilitar el inicio automático/manual del servicio, debe desenmascararlo usando:
sudo sytemctl unmask docker.service Ahora el servicio estará habilitado como se muestra a continuación 
Como la ventana acoplable se une a un socket de Unix que es propiedad de root durante el inicio, el uso de 'sudo' junto con los comandos de la ventana acoplable funcionará.
Agregue el usuario actual al grupo docker:
sudo usermod -aG docker $(whoami)
Para Ubuntu 16.04
Cambio en el archivo /lib/systemd/system/docker.service :
ExecStart=/usr/bin/dockerd fd://con:
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 Cambio en el archivo interno /etc/init.d/docker :
DOCKER_OPTS=con:
DOCKER_OPTS="-H tcp://0.0.0.0:2375"y luego reinicie su computadora.
Tenía el mismo problema y lo que funcionó para mí fue:
Comprobando la propiedad de /var/run/docker.sock
ls -l /var/run/docker.sockSi no es el propietario, cambie la propiedad con el comando
sudo chown *your-username* /var/run/docker.sockLuego puede continuar e intentar ejecutar los comandos de la ventana acoplable sin problemas: D
Agregue el grupo docker si aún no existe.
$ sudo groupadd dockerAgregue el usuario conectado "${USER}" al grupo docker.
Cambie el nombre de usuario para que coincida con su usuario preferido.
Es posible que deba cerrar sesión y volver a iniciarla para que esto surta efecto.
$ sudo gpasswd -a ${USER} dockerReinicie el demonio de Docker.
$ sudo service docker restartTal vez esto ayude a alguien, ya que el mensaje de error es extremadamente inútil, y había realizado todos los pasos de permiso estándar varias veces sin éxito.
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 hacerlo accesible nuevamente, si lo ha tenido ejecutándose en un punto 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 acoplable 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 la ventana acoplable, tenía los permisos correctos en el socket, etc., pero aún no podía ejecutar el inicio de docker login de la docker run ... , etc. Esto lo arregló para mí. Desafortunadamente, tengo que ejecutar esto en cada reinicio. Esto se menciona en un par de problemas de github también como una solución, aunque parece un error que es una barrera persistente para el funcionamiento correcto de Docker (nota: estoy en Arch Linux, no en OSX, pero este fue el mismo problema para me).
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 restartPude arreglar eso ejecutando el siguiente comando:
sudo mv /var/lib/dpkg/info/docker-ce* /tmp