Docker no puede conectarse al demonio de Docker
Después de actualizar mi versión de Docker a 0.8.0
, aparece un mensaje de error al ingresar 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 e ingresé el 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 soluciono el problema?
linux
La documentación de Pasos posteriores a la instalación para Linux revela los siguientes pasos:
- Cree el grupo acoplable .
ventana acoplable sudo groupadd
- Agregue el usuario al grupo de Docker .
sudo usermod -aG docker $(whoami)
- Cierre sesión y vuelva a iniciarla para asegurarse de que Docker se ejecute con los permisos correctos.
- Inicie la ventana acoplable.
inicio de la ventana acoplable del servicio sudo
Mac OS X
Como dice Dayel Ostraco es necesario agregar variables de entorno:
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 docker-machine start
comando genera los comentarios para guiar el proceso.
linux
Para ejecutar Docker Daemon 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 docker
binario es solo un cliente y no puede usarlo para ejecutar el demonio Docker, porque el demonio Docker usa funciones del kernel específicas de Linux, por lo tanto, no puede ejecutar Docker de forma nativa en OS X. Por lo tanto, debe instalarlo docker-machine
para crear. VM y adjuntarlo.
Instalar docker-machine
en MacOS
Si aún no tiene docker-machine
el comando, instálelo utilizando 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
Consulte: Introducción a 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 default
máquina (si no tiene una, consulte:) docker-machine ls
:
docker-machine create --driver virtualbox default
Luego configure el entorno para el cliente Docker:
eval "$(docker-machine env default)"
Luego verifique nuevamente enumerando los contenedores:
docker ps
Consulte: Introducción a Docker Machine y una máquina virtual local .
Instale Docker.app en macOS
Como alternativa a la solución anterior, puede instalar una aplicación Docker de la siguiente manera:
brew cask install docker
Consulte esta publicación para obtener más detalles . Ver también: No se puede conectar al demonio Docker en macOS
Si está ejecutando Docker en OS X, ejecutar la siguiente evaluación me ha funcionado.
eval "$(docker-machine env default)"
Si prefiere no tener que ejecutar esta declaración de evaluación 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 del terminal o ejecutar el código fuente bash_profile
para que los cambios surtan efecto.
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 impide que el cliente Docker se conecte al demonio Docker.
Para resolver el problema, puedes:
A) Reinstale Docker Toolbox usando el instalador oficial ( https://www.docker.com/products/docker-toolbox ), o simplemente
B) Ejecute 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 puedes 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 reciba 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.