macos - for - tutorial docker mac
No se puede conectar al demonio Docker en macOS (11)
En macOS, el
docker
binario 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-machine
para crear VM y adjuntarlo.
Instalar
docker-machine
en macOS
Si aún no tiene el comando
docker-machine
, instálelo utilizando uno de los siguientes métodos:
-
Usando el comando
Brew
:
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 .
Configurar
docker-machine
en macOS
Cree una máquina
default
(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 dos veces enumerando los contenedores:
docker ps
Consulte: Comience con Docker Machine y una máquina virtual local .
Relacionado:
- Brew install docker no incluye el motor docker?
- Para Linux, vea: Docker no se puede conectar al docker daemon
- Para Windows, consulte: Advertencia de Docker: no se pudo obtener el punto final de registro predeterminado del daemon
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?
En una Mac compatible, ejecute:
brew cask install docker
Luego, inicie la aplicación Docker . Haga clic en Siguiente. Solicitará acceso privilegiado. Confirmar. Debería aparecer un icono de ballena en la barra superior. Haz clic y espera a que aparezca "Docker se está ejecutando".
Ahora debería poder ejecutar los comandos de
docker
:
docker ps
Debido a que Docker es un paquete de nivel de sistema, no puede instalarlo usando
brew install
, y debe usar el barril en su lugar.
Nota: Esta solución solo funciona para Macs cuyas CPU admiten virtualización, que puede no incluir Macs antiguas.
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.
Intente esto para crear por defecto.
docker-machine create default
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.
Simplemente tuve que ejecutar la búsqueda de Spotlight y ejecutar la aplicación Docker en / Carpeta de aplicaciones que creó la
brew cask install
.
Una vez que se ejecutó, solicitó completar la instalación.
Entonces pude ejecutar
docker ps
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
Tengo Mac OS y abro
Launchpad
y selecciono la aplicación
docker
.
desde la pestaña de
reset
haga clic en
restart
.
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í here
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 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 !
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