No se puede conectar al demonio Docker en macOS

Resuelto Anthony Kong asked hace 7 años • 38 respuestas

Normalmente prefiero administrar mis aplicaciones en mi OSX con cerveza

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 intento ejecutar

> 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 revisé el archivo del calcetín.

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 demonio acoplable en este host?

Pero recibí este mensaje de error:

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

¿Es posible ejecutar un servicio Docker mediante herramientas de línea de comandos?

Anthony Kong avatar May 20 '17 17:05 Anthony Kong
Aceptado

En una Mac compatible, ejecute:

brew install --cask docker

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

Debería poder ejecutar dockercomandos ahora:

docker ps

Debido a que Docker es un paquete a nivel de sistema, no puede instalarlo usando brew instally debe usarlo --casken su lugar.

Nota: Esta solución solo funciona para Mac cuyas CPU admitan virtualización, que pueden no incluir Mac antiguas.

Edición 2022: en la sección de comentarios se mencionó que ha habido un cambio de licencia para Docker Desktop. Considere las alternativas a continuación y consulte los comentarios para obtener más detalles.

friederbluemle avatar Jun 23 '2017 10:06 friederbluemle

En macOS, el dockerbinario 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-machinepara crear. VM y adjuntarlo.

Instalar docker-machineen MacOS

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

  • Usando el comando Brew : brew install docker-machine docker.

  • Manualmente desde la página de lanzamientos :

    $ 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: Introducción a Docker para Mac .

Instalar Virtualbox

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

  • Usando cerveza casera:brew install --cask virtualbox
  • Usando manualmente 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 proceder a 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, 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 .


Relacionado:

  • ¿La ventana acoplable Brew Install no incluye el motor Docker?
  • Para Linux, consulte: Docker no se puede conectar al demonio de Docker
  • Para Windows, consulte: Advertencia de Docker: no se pudo obtener el punto final de registro predeterminado del demonio
kenorb avatar Apr 08 '2018 15:04 kenorb

Si terminaste aquí después de Docker Desktop 4.13.0 como yo, ¡es porque Docker eliminó el /var/run/docker.sockenlace simbólico en el comportamiento predeterminado! Consulte las notas de la versión aquí .

Solución rápida: copie el comando en "Solución permanente" a continuación

El problema

Estaba experimentando que docker ps(y otros comandos del cliente de Docker) funcionaban, pero otras bibliotecas que interactúan con Docker (como la CLI de supabase) dieron como resultado:

$ supabase start
Error: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

Solución

Ahora, debe hacer algo manual para que sus herramientas encuentren el archivo Docker Socket real , que de forma predeterminada está en ~/Library/Containers/com.docker.docker/Data/docker.raw.sock.

Solución permanente: enlace simbólico manual

Esta es una solución permanente que "deshace" esta solución temporal.

sudo ln -s ~/Library/Containers/com.docker.docker/Data/docker.raw.sock /var/run/docker.sock
DOCKER_HOST=unix:///var/run/docker.sock docker ps # test that it works using linked socket file

Solución temporal: utilice DOCKER_HOST

Esto obtendrá temporalmente su comando para usar el nuevo archivo de socket

DOCKER_HOST=unix:///Users/$USER/Library/Containers/com.docker.docker/Data/docker.raw.sock docker ps

(reemplazando docker pscon cualquier comando que desee, como supabase start)

También puedes hacer que funcione en tu sesión actual de terminal, o pegarlo en tu sesión .zshrcpara siempre, con:

export DOCKER_HOST=unix:///Users/$USER/Library/Containers/com.docker.docker/Data/docker.raw.sock
efriis avatar Oct 21 '2022 02:10 efriis

ATENCIÓN: Docker-machine está en desuso ( ver aquí )

El proyecto de la máquina acoplable ahora ha sido oficialmente abandonado.

Descubrí que Colima es un excelente reemplazo y puedes conectar fácilmente el demonio acoplable con unos simples pasos:

brew install docker docker-compose colima
# make coffee
colima start

Listo para acoplar:

docker run hello-world
uɥƃnɐʌuop avatar Oct 12 '2022 08:10 uɥƃnɐʌuop