linux - imagenes - Docker no puede conectarse al demonio docker
dockers container download (30)
Después de actualizar mi versión de Docker a 0.8.0
, 0.8.0
un mensaje de error al ingresar la sudo docker version
:
Client version: 0.8.0
Go version (client): go1.2
Git commit (client): cc3a8c8
2014/02/19 12:54:16 Can''t connect to docker daemon. Is ''docker -d'' running on this host?
Y seguí las instrucciones y entré al comando sudo docker -d
, y obtuve esto:
[/var/lib/docker|2462000b] +job initserver()
[/var/lib/docker|2462000b.initserver()] Creating server
open /var/lib/docker/aufs/layers/cf2414da53f9bcfaa48bc3d58360d7f1cfd3784e4fe51fbef95197709dfc285d: no such file or directory[/var/lib/docker|2462000b] -job initserver() = ERR (1)
2014/02/19 12:55:57 initserver: open /var/lib/docker/aufs/layers/cf2414da53f9bcfaa48bc3d58360d7f1cfd3784e4fe51fbef95197709dfc285d: no such file or directory
¿Cómo resuelvo el problema?
Linux
Los pasos posteriores a la instalación para la documentación de Linux revelan los siguientes pasos:
- Crea el grupo docker .
sudo groupadd docker
- Agregue el usuario al grupo docker .
sudo usermod -aG docker $(whoami)
- Cierre la sesión y vuelva a iniciarla para asegurarse de que la ventana acoplable se ejecuta con los permisos correctos.
- Iniciar docker.
sudo service docker start
Mac OS X
Como Dayel Ostraco dice es necesario agregar variables de ambientes:
docker-machine start # Start virtual machine for docker
docker-machine env # It''s helps to get environment variables
eval "$(docker-machine env default)" # Set environment variables
El comando de docker-machine start
envía los comentarios para guiar el proceso.
Linux
Para ejecutar el demonio docker en Linux (desde CLI ), ejecute:
$ sudo service docker start # Ubuntu/Debian
Nota: Omita el carácter $
al copiar y pegar.
En RedHat / CentOS, ejecute: sudo systemctl start docker
.
Para inicializar el sistema de archivos "base", ejecute:
$ sudo service docker stop
$ sudo rm -rf /var/lib/docker
$ sudo service docker start
o manualmente como:
$ sudo docker -d --storage-opt dm.basesize=20G
Instalar docker-machine
en Linux
Para instalar binarios de máquina en Linux:
en la zona:
install -vm755 <(curl -L https://github.com/docker/machine/releases/download/v0.5.3/docker-machine_linux-amd64) $HOME/bin/docker-machine
global:
sudo bash -c ''install -vm755 <(curl -L https://github.com/docker/machine/releases/download/v0.5.3/docker-machine_linux-amd64) /usr/local/bin/docker-machine''
Mac OS
En macOS, el binario de la docker
es solo un cliente y no puede usarlo para ejecutar el demonio de la ventana acoplable, porque el demonio Docker usa características del kernel específicas de Linux, por lo tanto no puede ejecutar Docker de forma nativa en OS X. Por lo tanto, debe instalar docker-machine
con el fin de crear VM y adjuntar a ella.
Instalar docker-machine
en macOS
Si aún no tiene el comando docker-machine
, instálelo usando uno de los siguientes métodos:
- Usando el comando Brew :
brew install docker-machine docker
. manualmente desde GitHub :
install -v <(curl https://github.com/docker/machine/releases/download/v0.5.3/docker-machine_linux-amd64) /usr/local/bin/docker-machine
Ver: Comenzar con Docker para Mac .
Configurar docker-machine
en macOS
Para iniciar Docker Machine a través de Homebrew, ejecute:
brew services start docker-machine
Para crear una máquina default
(si no tiene una, vea: docker-machine ls
):
docker-machine create --driver virtualbox default
A continuación, configure el entorno para el cliente Docker:
eval "$(docker-machine env default)"
Luego, vuelva a verificar enumerando los contenedores:
docker ps
Consulte: Comience con Docker Machine y una máquina virtual local .
Instala Docker.app en macOS
Como alternativa a la solución anterior, puede instalar una aplicación Docker por:
brew cask install docker
Revisa esta publicación para más detalles . Ver también: No se puede conectar al demonio Docker en macOS
Usa la aplicación Docker CE
Mac OS
Utilice la nueva aplicación Docker Community Edition para macOS. Por ejemplo:
Desinstale todos los paquetes de Docker Homebrew que haya instalado hasta ahora:
brew uninstall docker-compose brew uninstall docker-machine brew uninstall docker
Instala una aplicación manualmente o por Homebrew-Cask :
brew cask install docker
Nota: esta aplicación creará los enlaces necesarios a la
docker
, a ladocker
docker-compose
,docker-machine
, etc.Después de ejecutar la aplicación, verifique el ícono de una ballena Docker en el menú de estado.
- Ahora debería poder usar los comandos
docker
,docker-compose
,docker-machine
como de costumbre en la Terminal .
Relacionado:
- Brew docker docker no incluye motor docker?
- No se puede conectar al demonio Docker en macOS
Linux / Windows
Descargue el Docker CE desde la página de descarga y siga las instrucciones.
- También tuve el mismo problema. El problema estaba en los sockets asignados a docker-daemon y docker-client.
- Primero, el permiso no se estableció para el docker-client en docker.sock. Puede configurarlo usando "sudo usermod -aG docker $ USER"
- Luego revise 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 estableció en el archivo de configuración de dockerd).
- Solo comenta la línea de bash y funcionará bien.
- 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úrela a 0.0.0.0: 2375.
Acabo de tener el mismo problema, corriendo en Amazon AWS .
Esto es lo que intenté:
- Configure la
docker-machine
localmente con una instancia de AWS ya existente - Configuración genérica usada
- Se conectó, pero como el puerto remoto estaba cerrado, falló
- Después de eso, el demonio Docker se negó a iniciarse, pero la ejecución de
dockerd
funcionó ...
Fue probado siguiendo en la máquina remota:
service docker start # Also restart, no success
systemctl start docker # Also restart, no success
dockerd # Success
Quité /var/lib/docker
y desinstalé todo, pero no hubo éxito después de la reinstalación. Desafortunadamente, no tengo registros almacenados de fallas, pero el servicio docker.service
negó a iniciar.
Sin embargo, lo que finalmente resolvió mi problema fue básicamente:
sudo usermod -aG docker $(whoami)
Compruebe si está utilizando Docker Machine :)
Ejecutar docker-machine env default
debería hacer el truco.
Porque según la documentación:
Docker Machine es una herramienta que le permite instalar Docker Engine en hosts virtuales y administrar los hosts con comandos de
docker-machine
. Puede usar Machine para crear hosts Docker en su Mac local o Windows box, en la red de su empresa, en su centro de datos o en proveedores en la nube como AWS o Digital Ocean.Con
docker-machine
comandos dedocker-machine
, puede iniciar, inspeccionar, detener y reiniciar un host administrado, actualizar el demonio y el cliente de Docker y configurar un cliente de Docker para hablar con su host.Apunte el CLI de la máquina a un host administrado y en ejecución, y puede ejecutar los comandos de la
docker
directamente en ese host. Por ejemplo, ejecute eldocker-machine env default
para apuntar a un host llamadodefault
, siga las instrucciones en pantalla para completar la configuración deenv
, y ejecute eldocker ps
, eldocker run hello-world
, etc.
Después de una investigación detallada, este problema parece ocurrir cada vez que se reinicia Mac OS X (o se reinicia la máquina virtual Docker), lo que evita que el cliente Docker se conecte al demonio Docker.
Para resolver el problema, puede:
A) Reinstale Docker Toolbox utilizando el instalador oficial ( https://www.docker.com/products/docker-toolbox ), o simplemente
B) Ejecutar los siguientes comandos en orden:
# First make sure that the virtual machine is running
docker-machine start default
# Regenerate TLS connection certs, requires confirmation
docker-machine regenerate-certs default
# Finally, set env
eval "$(docker-machine env default)"
C) Igual que (B), también puede copiar y pegar la siguiente línea para ejecutar los tres comandos:
docker-machine start default; docker-machine regenerate-certs default; eval "$(docker-machine env default)"
En caso de que obtenga el siguiente error:
Error getting SSH command: Something went wrong running an SSH command!
command : cat /etc/os-release
err : exit status 255
output :
simplemente vuelva a ejecutar los tres comandos otra vez, y debería funcionar la segunda vez.
Esto suele suceder cuando no está en el grupo docker
. Puedes docker
grupo docker
con:
sudo usermod -aG docker yourusername
o
sudo usermod -aG docker $(whoami)
Después de esto, debe cerrar sesión y volver a iniciar sesión en el servidor.
Alternativamente, puede sudo
cada comando de Docker.
Hacer un ps aux | grep docker
ps aux | grep docker
para ver si el demonio se está ejecutando. Si no se ejecuta /etc/init.d/docker start
Intente agregar el usuario actual al grupo docker
:
sudo usermod -aG docker $USER
A continuación, cierre la sesión e inicie sesión.
Intente cambiar el archivo de configuración de Docker, el docker
o el docker-network
en /etc/sysconfig
:
(... ~ v1.17)
archivo docker
:
OPTIONS= -H fd://
o (v1.18):
archivo docker-network
:
DOCKER_NETWORK_OPTIONS= -H unix:///var/run/docker.sock
La mejor manera de descubrir por qué Docker no funciona es ejecutar el daemon manualmente.
$ sudo service docker stop
$ ps aux | grep docker # do this until you don''t see /usr/bin/docker -d
$ /usr/bin/docker -d
El demonio Docker se registra en STDOUT, por lo que comenzará a escupir lo que sea que esté haciendo.
Aquí estaba lo que mi problema era:
[8bf47e42.initserver()] Creating pidfile
2015/01/11 15:20:33 pid file found, ensure docker is not running or delete /var/run/docker.pid
Esto se debió a que la instancia había sido clonada desde otra máquina virtual. Solo tuve que eliminar el archivo pid, y todo funcionó después.
Por supuesto, en lugar de suponer ciegamente que esto funcionará, sugeriría ejecutar el daemon manualmente una vez más y revisar la salida del registro para ver si hay otros errores antes de iniciar la copia de seguridad del servicio.
Me enfrenté a este problema y reinicié Docker usando estos comandos:
$ sudo service docker stop
$ sudo service docker start
Pero no resolví mi problema, porque olvidé ejecutar mis comandos de Docker sin sudo
. Para aquellos que se enfrentan a este problema, trate de comprobar eso.
Tratar
$ sudo docker info
en lugar de esto:
$ docker info
Ok, así que empecé a tener este problema hoy. Luego vi muchas respuestas pero ninguna parece haber funcionado para mí. Primero, la mayoría de las instrucciones fueron dirigidas a linux. Y para la versión Mac, todos hablaban de ejecutar ''docker-machine''. Supongo que utiliza la ventana acoplable si instala la caja de herramientas de la ventana acoplable porque entonces la ventana acoplable se ejecutará en una máquina virtual para plataformas Windows y Mac. Pero su 2017 ahora y la ventana acoplable para mac son realmente estables, por lo que no es necesario utilizar la caja de herramientas.
Aunque no estoy seguro de cómo se detuvo el demonio. Pero para reiniciar todo lo que tenía que hacer era ir a "Aplicaciones" y hacer doble clic en el icono de la ventana acoplable. Me pidieron actualizar y relanzar lo que acepté. Después de eso todo funcionó a la perfección.
Para solucionarlo, debe emitir los siguientes comandos en el terminal. Te explico cada paso:
# Uninstall Docker from apt packages
$ sudo apt-get remove docker docker.io
# Remove it from the libraries just to be
# sure it''s gone forever
$ sudo rm -rf /var/lib/docker/*
Ahora, si desea simplificar las cosas y obtener más tiempo, puede ejecutar mi script de init
con el parámetro installDocker
:
# Pull the init script from GitHub
$ wget https://github.com/dminca/dotfiles/blob/master/init
# Add rights to run the script
$ chmod 755 init
# Just run the script with the installDocker parameter
$ ./init installDocker
El reinicio es opcional, pero le sugiero que lo haga para asegurarse de que todo funcione correctamente.
Reinicio Docker después de instalarlo:
$ sudo service docker stop
$ sudo service docker start
Y funciona.
Si está ejecutando Docker en OS X, la ejecución de la siguiente evaluación me ha funcionado.
eval "$(docker-machine env default)"
Si prefiere no tener que ejecutar esta declaración eval en cada sesión de terminal, puede agregar esto a su bash_profile
:
#Docker
eval "$(docker-machine env default)"
Asegúrese de reiniciar la sesión de terminal o ejecutar la fuente en bash_profile
para que los cambios surtan efecto.
Si está ejecutando en OS X usando la herramienta Docker, siga esto.
Reinicie el demonio y configure su entorno:
docker-machine restart
Y entonces
docker-machine env
Finalmente,
eval $(docker-machine env)
Para probar el demonio se está ejecutando:
docker ps -a
o docker-machine ls
. Esto listará todos los contenedores.
Si la regeneración de certificados TLS no funciona
docker-machine regenerate-certs default
Intente reiniciar la máquina docker y configurar la variable env:
docker-machine restart default
eval $(docker-machine env default)
Compruebe si la máquina está funcionando con:
docker-machine ls
o alternativamente
docker run hello-world
Esto funcionó para mí. Sin embargo, si aún no tiene el demonio arriba, la página de solución de problemas de Docker detalla un proceso para detener, eliminar y crear una nueva máquina.
Si recibe el mensaje Can''t connect to docker daemon. Is ''docker -d'' running on this host?
Can''t connect to docker daemon. Is ''docker -d'' running on this host?
, puedes comprobarlo por docker version
.
Si ve la información como Docker Client se está ejecutando. pero Docker Server no lo es, obviamente necesita iniciar el servidor Docker.
En CentOS, puede usar el service
para iniciar o detener el servidor Docker.
$ sudo service docker stop
$ sudo service docker start
Luego, después de escribir la docker version
, obtendrá la información de Docker Client y Docker Server , y el demonio Docker se habrá iniciado.
Si todas las otras soluciones anteriores no funcionan, puede intentar verificar 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 puedes seguir adelante e intentar ejecutar los comandos de Docker sin complicaciones: D
Siguiendo el sitio DOC de Docker: Administrar Docker como un usuario no root
1) Crear grupo Docker
sudo groupadd docker
2) Hacer que el usuario pertenezca al grupo docker para obtener los privilegios del grupo.
sudo usermod -aG docker $USER
Compruebe si la variable de entorno DOCKER_HOST está establecida para su shell.
env | grep DOCKER_HOST
Si existiera,
unset DOCKER_HOST
Entonces esto debería funcionar:
docker run hello-world
También tengo el problema "No se puede conectar con el daemon Docker. ¿Se está ejecutando el daemon docker en este host?".
Me había olvidado de usar sudo
. Espero que nos ayude a algunos de nosotros.
$:docker images
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
$:sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
Tengo el mismo error y al intentar con docker-machine regenerate-certs
o eval..
no me funcionó.
Esto en OS X 10.11.3 (El Capitán) y Docker v1.10.1. Solo pude arreglarlo eliminando y volviendo a crear docker-machine nuevamente. Source
Si ejecuta el docker-machine ls
, le muestra una salida similar a la de abajo;
ESTIBADOR
Desconocido
ERRORES
No se puede consultar la versión de la ventana acoplable: no se puede conectar al punto final del motor de la ventana acoplable
Intenta quitar tu máquina Docker con;
docker-machine rm -f default
Donde por default
es el nombre de su máquina Docker. Entonces;
docker-machine create -d virtualbox default
Crea una nueva máquina Docker.
Verifique que todo se vea normal ahora (sin errores o Docker desconocido) con:
docker-machine ls
Finalmente, no olvide ejecutar "$(docker-machine env default)"
antes de continuar o ejecutar el Terminal de inicio rápido de Docker, que lo hace por usted ...
Tengo el mismo problema. En CentOS 6.5:
ps aux |grep `cat /var/run/docker.pid`
Si muestra que no existe un proceso de demonio Docker, escribo:
docker -d
Luego Ctrl + D para detener Docker. Debido a que usamos la opción -d
, Docker se ejecutará como demonio. Ahora podemos hacer:
service docker start
Entonces podré hacer un docker pull centos
. Eso es todo.
NOTA: Si estos no funcionan, puede probar yum update
y luego repetirlos nuevamente, ya que yo yum install
antes de estos.
Tengo un problema similar. Tuve que cerrar sesión e iniciar sesión nuevamente en el shell porque acabo de instalar Docker y el siguiente comando no se mostró en mi entorno.
export DOCKER_HOST=127.0.0.1:4243 >> ~/.bashrc
Tuve el mismo problema al ejecutar Docker 1.10 en Ubuntu 14.04 y ninguna de las respuestas dadas funcionó. Para mí, la solución fue especificar el controlador de almacenamiento al ejecutar el demonio Docker.
sudo docker daemon --storage-driver=devicemapper
Tuve el mismo problema: "No se puede conectar con el demonio docker". (excepto que no obtuve ningún error de ''archivo no encontrado'' al intentar iniciar el servidor).
''ps'' mostró que "/ usr / bin / docker -d" todavía se estaba ejecutando
Sin embargo, me di cuenta de que nunca había tenido éxito en ejecutar el servidor. Cada intento había producido
...
2014/03/24 21:57:29 pid file found, ensure docker is not running or delete /var/run/docker.pid
Así que me di cuenta tardíamente de que la instalación de la ventana acoplable tal vez había registrado el daemon con upstart, lo cual lo había iniciado para mí. Por lo tanto, intentar matar al demonio para reiniciarlo manualmente falla (operación no permitida). Así que hice un
sudo kill -9 <PID>
en el proceso de daemon. Otro demonio inmediatamente tomó su lugar, y este nuevo SÍ permite que mi cliente CLI se conecte:
$ sudo docker info
Containers: 0
Images: 0
Driver: aufs
Root Dir: /var/lib/docker/aufs
Dirs: 0
WARNING: No memory limit support
WARNING: No swap limit support
Tuve un problema similar
En mi caso, la solución fue eliminar una versión obsoleta de la ventana acoplable. Supongo que esto estaba causando algunos conflictos.
En ubuntu:
sudo apt remove docker
resuelto el problema para mi
¿Has intentado apagarlo y volver a encenderlo? :-)
Tuve el mismo problema después de actualizar a Docker 1.10.1 en mi Mac. Hice lo siguiente:
En la terminal de inicio rápido de Docker
$ salida
$ salida
entonces
docker-machine kill predeterminado
luego reinició Docker Quickstart Terminal
Esto solucionó mi problema.