Compose: [Mac] docker-compose no se ejecutará debido al error "No se pudo conectar al demonio de Docker"

Creado en 13 oct. 2015  ·  31Comentarios  ·  Fuente: docker/compose

Estoy muy confundido acerca de cómo se supone que funciona docker-compose en mi Mac. Estos son los pasos que tomé:

1) Caja de herramientas de Docker instalada (versión 1.8.2 de Docker)
2) Intenté ejecutar docker-compose up pero obtuve el error Illegal instruction: 4 según # 1885
3) Para solucionar el problema, instalé docker-compose con pip a través de sudo pip install -U docker-compose
4) Ahora, cuando ejecuto docker-compose up obtengo Couldn't connect to Docker daemon - you might need to run boot2docker hasta .

Lo cual es muy confuso porque toda la documentación dice que boot2docker está en desuso. E intentar instalar boot2docker tampoco me funciona.

No estoy seguro de qué más probar. Actualmente tiene instalado docker-compose v1.4.2.

kinquestion

Comentario más útil

Recientemente solucionamos este mensaje de error (la solución estará en la próxima versión).

Debería decir "es posible que deba ejecutar docker-machine start default ".

Si aún no puede conectarse, y docker-machine está ejecutando, puede configurar compose para usar la máquina con eval "$(docker-machine env default)"

Todos 31 comentarios

Recientemente solucionamos este mensaje de error (la solución estará en la próxima versión).

Debería decir "es posible que deba ejecutar docker-machine start default ".

Si aún no puede conectarse, y docker-machine está ejecutando, puede configurar compose para usar la máquina con eval "$(docker-machine env default)"

OK gracias. Parece que mi problema es con la máquina virtual Docker. Me está dando todo tipo de errores TLS incluso cuando ejecuto comandos habituales de la ventana acoplable como docker images .

Get http:///var/run/docker.sock/v1.20/images/json: dial unix /var/run/docker.sock: no such file or directory.
* Are you trying to connect to a TLS-enabled daemon without TLS?
* Is your docker daemon up and running?

Lo hablaré con el equipo de Docker.

ACTUALIZAR

Para cualquiera que también tenga este problema. La solución para mí fue:

  • Ejecute la aplicación Docker Quickstart Terminal
  • Ejecutar docker-machine restart default
  • Ejecutar eval $(docker-machine env default)

Aparentemente, necesita ejecutar eval $(docker-machine env default) cada vez que ejecuta la terminal de inicio rápido.

Recibo el mismo error, pero no quiero usar la máquina predeterminada, sino otra máquina creada con el controlador amazonec2 , ¿es posible?

Si. Compose usará cualquier motor que esté configurado en la variable de entorno DOCKER_HOST (que es lo que se establece en eval $(docker-machine env ....) .

ah gracias, no sabía nada de DOCKER_HOST !!
¿Por qué no agregar un parámetro de línea de comando que anule este valor?

Solo me gustaría agregar algo para cualquiera que visite esto en el futuro ... Sigo teniendo este problema cada vez que abro un nuevo shell, así que agregué eval $(docker-machine env default) a mi ~/.bash_profile . Funciona de maravilla. Por supuesto, alguien aquí puede decirme que esta es una Muy Mala Idea (TM): sonríe:

Si, funciona. Pero, ¿por qué eval $ (docker-machine env default) de repente? Estaba funcionando bien antes

Sí, tampoco estoy seguro. También estaba trabajando para mí antes.

eval $(docker-machine env default) me funciona! Gracias :)

Eval "$ (docker-machine env default)" funcionó, ¡gracias!

Todavía no estoy totalmente satisfecho con la solución de agregar eval $(docker-machine env default) a ~/.bash_profile (aunque lo propuse), ya que agrega un retraso de aproximadamente 2 segundos para abrir una nueva ventana de terminal. ¿Alguien tiene mejores ideas?

@shankiesan alias eval_evil_docker="eval $(docker-machine env default)"

Ja, sí, supongo que eso funcionaría @michahell . Todavía tienes que hacer algo antes cada vez que uses Docker. ¡No es ideal, pero no está mal!

@shankiesan La única otra opción que puedo ver es exportar las variables producidas desde docker-machine env default en .bash_profile. Sí, teóricamente, la IP podría cambiar, pero en realidad es mucho menos probable que esto ocurra que el retraso en la apertura de un nuevo shell a diario y, si lo hace, siempre puedes actualizar :-)

Esa es una buena idea @lewistaylor . Lo intenté antes de que no funcionara, pero esta vez lo hizo, por lo que debe haber sido un error del operador. Buena, es una gran sugerencia: +1:

@shankiesan @lewistaylor wow, no puedo entender que no se me ocurrió eso. solución aún mejor: +1:

este problema aún persiste, la única solución es usar

$ eval $(docker-machine env the-vm-name) // which doesnt give any output & without it we get the error
$ docker-compose up

A veces tengo el mismo problema PERO surge SOLO cuando cierro mi macbook. Si reinicio el sistema, puede que comience bien, puede que no. Si no, reinicio de nuevo y normalmente funciona. Supongo que probablemente el problema en la IP / puertos, solo adivine, porque si reinicio mi computadora portátil con programas no cerrados (como PHPStorm), generalmente no funcionará. Si cierro todos los programas en ejecución y lo reinicio, está funcionando.

+1

@lewistaylor @shankiesan @michahell ¿Cómo exporta las variables de docker-machine env default en .bash_profile? No soy tan bueno con bash, por lo que agradecería ayuda para implementar esta solución.

Suelta docker-machine / dinghy / boot2docker y usa docker para mac, está configurado en
conviértete en el tiempo de ejecución oficial
El 3 de junio de 2016 a las 08:03, "nwshane" [email protected] escribió:

@lewistaylor https://github.com/lewistaylor @shankiesan
https://github.com/shankiesan @michahell https://github.com/michahell
¿Cómo se exportan las variables de docker-machine env default en
.bash_profile? No soy tan bueno con bash, así que agradecería ayuda en
implementando esta corrección.

-
Estás recibiendo esto porque te mencionaron.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/docker/compose/issues/2180#issuecomment -223505966,
o silenciar el hilo
https://github.com/notifications/unsubscribe/AAeWNmFAR8k9Aszni-FDcGrkfK4dVEAeks5qH9GugaJpZM4GN-hv
.

@nwshane Simplemente edite .bash_profile en su editor de texto favorito. Por ejemplo:

nano ~/.bash_profile y agregue las líneas que obtuvo de docker-machine env default . Luego tiene que source ese archivo; puede hacerlo abriendo y cerrando su sesión de terminal, o mejor, source ~/.bash_profile

Deberias hacer eso.

@shankiesan ¡ Genial, gracias! Eso hizo el truco. Me estaba confundiendo pensando que tenía que ejecutar docker-machine env default y obtener las variables de allí, pero, por supuesto, eso es lo que hace eval "$(docker-machine env default)" .

$ wordpress-compose eval $(docker-machine env wordpress)
$ wordpress-compose docker ps
ID DE CONTENEDOR COMANDO DE IMAGEN ESTADO CREADO NOMBRES DE PUERTOS
443c7386f4ef wordpress "/entrypoint.sh apach" Hace 7 minutos Hasta 7 minutos 0.0.0.0:80->80/tcp wordpress_app
a790fdc3ca70 mysql "docker-entrypoint.sh" Hace 14 minutos Hasta 14 minutos 0.0.0.0:3360->3306/tcp wordpress_db
$ wordpress-compose docker-compose up
ERROR: No se pudo conectar al demonio de Docker; es posible que deba ejecutar docker-machine start default .`

$ wordpress-compose docker-compose --version
docker-compose versión 1.8.0-rc1, compilación 9bf6bc6

$ wordpress-compose docker --version
Docker versión 1.12.0-rc2, compilación 906eacd, experimental

Aquí está mi información, todo funciona bien si uso docker run .......mysql..... y docker run ....link....wordpress , y puedo acceder al blog en el navegador. Cuando quiero probar docker-compose , no funciona. He eliminado la máquina predeterminada, ahora WordPress está en uso.

¿Podría ayudarme a averiguar qué está mal?

Tengo el mismo problema
pero no estoy usando docker-machine solo docker-compose
alguna idea ??

eval "$(docker-machine env default)" resuelve el problema

Tuve el mismo problema con un servicio específico en docker-compose.

Era un problema de permisos ... los archivos que se iban a cargar en la ventana acoplable no eran propiedad del usuario actual.

Igual que @Rots aquí = /

pegue el comando:
eval "$ (docker-machine env default)"
en tu terminal mac

"Error checking TLS connection: machine does not exist"
ahora tengo este problema cada vez que intento usar docker-machine env default, también intenté cargar desde bash_profile, ¡necesito ayuda!

Error de SSL: EOF se produjo en violación del protocolo (_ssl.c: 777)

¿Fue útil esta página
0 / 5 - 0 calificaciones