No se puede conectar al demonio Docker en macOS

208

Normalmente prefiero administrar mis aplicaciones en mi OSX con brew

Puedo instalar docker, docker-compose y docker-machine

docker --version
Docker version 17.05.0-ce, build 89658be
docker-compose --version
docker-compose version 1.13.0, build unknown
docker-machine --version
docker-machine version 0.11.0, build 5b27455

No descargué ni ejecuté la aplicación 'Docker para Mac'.

Sin embargo cuando trato de correr

> docker run -d -p 80:80 --name webserver nginx
docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.
See 'docker run --help'.

Ya he revisado el archivo de calcetines

ls -lah /var/run/docker.sock /var/tmp/docker.sock
ls: /var/run/docker.sock: No such file or directory
ls: /var/tmp/docker.sock: No such file or directory

También probé esta solución propuesta: Mac OS X sudo docker No se puede conectar al demonio Docker. ¿Se está ejecutando el Docker Daemon en este host?

Pero recibí este mensaje de error:

$ eval $(docker-machine env default)
Host does not exist: "default"

¿Es posible hacer que un servicio de docker se ejecute mediante herramientas de línea de comandos?

Anthony Kong
fuente
2
Inicie la aplicación Docker desde Launchpad, mostrará un cuadro de diálogo que le pedirá que para ejecutar la aplicación, se le otorguen algunos privilegios necesarios para esta aplicación, después de esto, el Docker vuelve al juego.
Rafael Kerr
En mi caso, había otro usuario conectado, por eso estaba fallando. Salió de otro usuario y trabajó entonces
Raza Ahmed

Respuestas:

474

En una Mac compatible, ejecute:

brew cask install docker

Luego inicia el Docker aplicación . Haga clic en Siguiente. Solicitará acceso privilegiado. Confirmar. Debería aparecer un icono de ballena en la barra superior. Haga clic y espere a que aparezca "Docker se está ejecutando".

dockerAhora debería poder ejecutar comandos:

docker ps

Debido a que Docker es un paquete de nivel de sistema, no puede instalarlo usando brew install, y en su lugar debe usar el barril.

Nota: Esta solución solo funciona para Macs cuyas CPU admiten virtualización, que puede no incluir Macs antiguas.

Friederbluemle
fuente
10
Esta debería ser la respuesta aceptada. Vaya a la plataforma de lanzamiento después de la instalación y busque la ventana acoplable
Joe Lloyd
39
Hice una instalación de brew docker y la aplicación no se instaló hasta que ejecuté el comando brew cask install docker. ¡Gracias!
jbrahy
2
¿Qué sucede si el comando aún no funciona incluso después de la instalación de la barrica (y Docker Whale muestra que se está ejecutando después de la contraseña dada)?
vol7ron
2
Esta solución solo funciona para Mac cuyas CPU admiten virtualización. No , no funciona en un Mac Pro 2009, por ejemplo. ¿Podrías editar tu respuesta para incluir este hecho importante?
John Y
3
Esto me ayudó como lo usé brew install dockerinicialmente. brew installmaneja servicios CLI y brew cask installes una extensión que ayuda a manejar servicios con interfaz gráfica de usuario.
Binoy S Kumar
107

En macOS, el dockerbinario es solo un cliente y no puede usarlo para ejecutar el docker daemon, porque Docker daemon usa características de kernel específicas de Linux, por lo tanto, no puede ejecutar Docker de forma nativa en OS X. Por lo tanto, debe instalar docker-machinepara crear VM y adjuntar a ella.

Instalar docker-machineen macOS

Si aún no tiene el docker-machinecomando, instálelo utilizando uno de los siguientes métodos:

  • Utilizando Brew comando: brew install docker-machine docker.
  • Manualmente desde la página de comunicados :

    $ curl -L https://github.com/docker/machine/releases/download/v0.16.1/docker-machine-`uname -s`-`uname -m` >/usr/local/bin/docker-machine
    $ chmod +x /usr/local/bin/docker-machine
    

Consulte: Comience con Docker para Mac .

Instalar Virtualbox

docker-machinedepende de la instalación de VirtualBox y fallará si este no es el caso. Si ya tiene VirtualBox, puede omitir este paso.

  • Usando Homebrew: brew cask install virtualbox
  • Uso manual de los lanzamientos en Virtualbox.org

Deberá aceptar activamente cargar la extensión del kernel de Virtualbox en el panel de seguridad de OS X y luego reiniciar la máquina para que los siguientes comandos no fallen.Error: VBoxNetAdpCtl: Error while adding new interface

Configurar docker-machineen macOS

Cree una defaultmáquina (si no tiene una, vea:) docker-machine ls:

docker-machine create --driver virtualbox default

Luego configure el entorno para el cliente Docker:

eval "$(docker-machine env default)"

Luego verifique dos veces enumerando los contenedores:

docker ps

Consulte: Comience con Docker Machine y una VM local .


Relacionado:

kenorb
fuente
77
Esta debería ser la respuesta aceptada. Esboza claramente a) por qué no funciona, b) instrucciones para que funcione sin descargar la interfaz de usuario en OSX yc) enlaces de referencia para leer más.
user2490003
1
También tuve que instalar virtualbox para que los comandos de la máquina acoplable funcionaran:brew cask install virtualbox
oligofren
1
Para iniciar un inicio docker-machinede sesión, use brew services start docker-machineo, si no desea usar Homebrew, consulte la sección "Iniciar máquinas locales al iniciar" de esta página (incluye instrucciones para Mac).
Chris H.
40

Tuve este mismo problema, lo resolví en los siguientes pasos:

docker-machine restart

Salga de la terminal (o iTerm2, etc., etc.) y reinicie

eval $(docker-machine env default)

También lo respondí aquí

Maestro p
fuente
2
El uno eval "debería" ser todo lo que necesita :)
rogerdpack
15

Tengo Mac OS y abro Launchpady selecciono la dockeraplicación. desde la resetpestaña, haga clic en restart.

Ehsan Barkhordar
fuente
Sí, primero debe iniciar la aplicación Docker jaja
Ender
12

Intente esto para crear por defecto.

docker-machine create default
Mossaddeque Mahmood
fuente
55
esto me dio ... docker-machine create default Creación de CA: /Users/stens/.docker/machine/certs/ca.pem Creación de certificado de cliente: /Users/stens/.docker/machine/certs/cert.pem Running comprobaciones previas a la creación ... Error con la comprobación previa a la creación: "VBoxManage no encontrado. Asegúrese de que VirtualBox esté instalado y VBoxManage esté en la ruta" ... lo que parece incorrecto ya que VirtualBox ya no es necesario para ejecutar docker en osx
Scott Stensland
Parece que también puede usarlo xhyve, consulte stackoverflow.com/a/42419979/32453 o simplemente instale virtualbox :)
rogerdpack
Y qué ?
FrankyFred
7

en OSX asegura que ha lanzado la aplicación Docker antes de emitir

docker ps

o docker build... etc ... sí, parece extraño y algo engañoso que emitir

docker --version

da la versión a pesar de que el Docker Daemon no se está ejecutando ... lo mismo para esos otros cmds de la versión ... Acabo de encontrar exactamente los mismos síntomas ... este comportamiento en OSX es diferente al de Linux

Scott Stensland
fuente
3

Yo tuve el mismo problema. Docker ejecutándose pero no pudo acceder a través de la CLI.

Para mí, el problema se resolvió ejecutando "Docker Quickstart Terminal.app". Este se encuentra en la carpeta "/ Aplicaciones / Docker /". Mientras trabajo en esta instancia de la aplicación Terminal, Docker funciona perfectamente. Si se necesita una segunda ventana, tengo que ejecutar la aplicación "Inicio rápido" una vez más.

Tengo una instalación de Docker para Mac. Por lo tanto, no estoy seguro de si mi solución es válida para una instalación de Homebrew.

La aplicación "Docker Quickstart Terminal" parece ser esencialmente una secuencia de comandos de manzana para iniciar la aplicación de terminal y una secuencia de comandos de inicio bash que inicializa todas las variables de entorno necesarias.

Espero que esto ayude a alguien más !

beo
fuente
3

Tenía docker actualizado, docker dijo que se estaba ejecutando y el diagnóstico fue bueno. Necesitaba desarmar alguna variable de entorno heredada (gracias https://docs.docker.com/docker-for-mac/troubleshoot/#workarounds-for-common-problems )

unset DOCKER_HOST
unset DOCKER_CERT_PATH
unset DOCKER_TLS_VERIFY
Miguel
fuente
1
Esto solucionó mi problema después de una actualización de Docker basado en VM al instalador de Mac. Siguió buscando la VM.
bobomoreno
use esto si ve una dirección IP incorrecta en 'No se puede conectar ... etc'
bobomoreno
2

Docker para Mac está en desuso. Y no necesita Homebrew para ejecutar Docker en Mac. En su lugar, es probable que desee instalar Docker Desktop o, si ya está instalado, asegúrese de que esté actualizado y en funcionamiento, luego intente conectarse nuevamente al zócalo.

ingrese la descripción de la imagen aquí

Josh Habdas
fuente
2

Debe ejecutar el script para instalar Docker e iniciarlo desde la línea de comandos:

brew cask install docker
pip3 install docker-compose
open -a Docker
docker-compose ... 

después de eso docker-composedebería funcionar

Boris Azanov
fuente
funcionó para mí, gracias
Soul Coder
1

Instala minikube y únete al lado oscuro.

https://kubernetes.io/docs/tasks/tools/install-minikube/

$ bash --version
GNU bash, version 5.0.3(1)-release (x86_64-apple-darwin18.2.0)
Copyright (C) 2019 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

eval $(minikube docker-env)

$ docker run --rm -v ${PWD}:/local swaggerapi/swagger-codegen-cli generate     -i /local/swagger.json     -l python     -o /local/test/
[main] INFO io.swagger.parser.Swagger20Parser - reading from /local/swagger.json
[main] WARN io.swagger.codegen.DefaultGenerator - 'host' not defined in the spec. Default to 'localhost'.

Funciona muy bien en Macbook Pro 2018 con bash v5. No es necesario instalar todas las demás tonterías de Docker en estos días IMO. La VM y el script de instalación que viene con minikube pueden reemplazar la máquina acoplable desde mi experiencia.

Ligemer
fuente
Como comentario de seguimiento, también necesitaba docker para otro proyecto sin kube y el escritorio docker funciona muy bien. Simplemente no lo inicies siempre o de lo contrario Kube se enojará con esta publicación.
Ligemer el
1

Estaba enfrentando un problema similar en mi Mac, y descubrí que Docker no se estaba ejecutando en mi máquina, simplemente fui a las aplicaciones e invoqué a Whale y luego funcionó.

Rama Sharma
fuente
0

Primero probé docker y docker-compose a través de homebrew, pero tenía el problema enumerado aquí. Tuve que instalar la instalación oficial de Docker desde https://docs.docker.com/docker-for-mac/install/ y luego todo funcionó como se esperaba.

Thomas Kessler
fuente
0

Simplemente tuve que ejecutar la búsqueda de Spotlight y ejecutar la aplicación Docker en la carpeta / Aplicaciones que brew cask installcreó. Una vez que se ejecutó, solicitó completar la instalación. Entonces pude correrdocker ps

wired00
fuente