Compose: [Mac] docker-compose ne fonctionnera pas en raison de l'erreur "Impossible de se connecter au démon Docker"

Créé le 13 oct. 2015  ·  31Commentaires  ·  Source: docker/compose

Je ne sais pas trop comment docker-compose est censé fonctionner sur mon Mac. Voici les étapes que j'ai suivies:

1) Docker Toolbox installé (Docker version 1.8.2)
2) J'ai essayé d'exécuter docker-compose up mais j'ai obtenu Illegal instruction: 4 erreur
3) Pour résoudre le problème, j'ai installé docker-compose avec pip via sudo pip install -U docker-compose
4) Maintenant, quand j'exécute docker-compose up j'obtiens Couldn't connect to Docker daemon - you might need to run boot2docker up .

Ce qui est très déroutant car toute la documentation indique que boot2docker est obsolète. Et essayer d'installer boot2docker ne fonctionne pas non plus pour moi.

Je ne sais pas quoi essayer d'autre. Actuellement, docker-compose v1.4.2 est installé.

kinquestion

Commentaire le plus utile

Nous avons récemment corrigé ce message d'erreur (le correctif sera dans la prochaine version).

Il devrait indiquer "vous devrez peut-être exécuter docker-machine start default ".

Si vous ne parvenez toujours pas à vous connecter et que docker-machine est en cours d'exécution, vous pouvez configurer compose pour utiliser la machine avec eval "$(docker-machine env default)"

Tous les 31 commentaires

Nous avons récemment corrigé ce message d'erreur (le correctif sera dans la prochaine version).

Il devrait indiquer "vous devrez peut-être exécuter docker-machine start default ".

Si vous ne parvenez toujours pas à vous connecter et que docker-machine est en cours d'exécution, vous pouvez configurer compose pour utiliser la machine avec eval "$(docker-machine env default)"

OK merci. Il semble que mon problème concerne la VM Docker. Cela me donne toutes sortes d'erreurs TLS même lorsque j'exécute des commandes docker normales comme 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?

Je vais en parler avec l'équipe des dockers.

METTRE À JOUR

Pour tous ceux qui ont également ce problème. La solution pour moi était de:

  • Exécutez l'application Docker Quickstart Terminal
  • Exécutez docker-machine restart default
  • Exécutez eval $(docker-machine env default)

Apparemment, vous devez exécuter eval $(docker-machine env default) chaque fois que vous exécutez le terminal de démarrage rapide.

J'obtiens la même erreur, mais je ne veux pas utiliser la machine par défaut mais plutôt une autre machine créée avec le pilote amazonec2 , est-ce possible?

Oui. Compose utilisera le moteur défini dans la variable d'environnement DOCKER_HOST (ce qui est défini par eval $(docker-machine env ....) .

ah merci, je ne savais pas pour DOCKER_HOST !!
Pourquoi ne pas ajouter un paramètre de ligne de commande qui remplacerait cette valeur ??

Je voudrais juste ajouter quelque chose pour tous ceux qui le visitent à l'avenir ... Je continue d'avoir ce problème chaque fois que j'ouvre un nouveau shell, donc j'ai ajouté eval $(docker-machine env default) à mon ~/.bash_profile . Fonctionne un régal. Bien sûr, quelqu'un ici peut me dire que c'est une très mauvaise idée (TM): sourire:

Oui cela fonctionne. Mais pourquoi eval $ (docker-machine env default) soudainement. Ça fonctionnait bien avant

Ouais, je ne suis pas sûr non plus. Travaillait aussi pour moi plus tôt.

eval $(docker-machine env default) fonctionne pour moi! Merci :)

Eval "$ (docker-machine env default)" a fonctionné, merci!

Je ne suis toujours pas totalement satisfait de la solution consistant eval $(docker-machine env default) ajouter ~/.bash_profile (même si je l'ai proposé) car cela ajoute un délai d'environ 2 secondes à l'ouverture d'une nouvelle fenêtre de terminal. Quelqu'un a-t-il de meilleures idées?

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

Hah oui, je suppose que cela fonctionnerait @michahell . Vous devez encore faire quelque chose avant chaque fois que vous utilisez docker. Pas idéal, mais pas mal!

@shankiesan La seule autre option que je peux voir est d'exporter les variables produites à partir de docker-machine env default dans .bash_profile. Oui, l'IP pourrait théoriquement changer, mais en réalité, cela est beaucoup moins susceptible de se produire que le retard dans l'ouverture d'un nouveau shell quotidiennement et si c'est le cas, vous pouvez toujours mettre à jour :-)

C'est une bonne idée @lewistaylor . J'ai essayé cela avant que cela ne fonctionne pas, mais c'est le cas cette fois-ci, il doit donc s'agir d'une erreur de l'opérateur. Bien joué, c'est une excellente suggestion: +1:

@shankiesan @lewistaylor wow, je ne peux pas comprendre que je n'ai pas trouvé ça. solution encore meilleure: +1:

ce problème persiste, la seule solution est d'utiliser

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

Parfois, j'ai le même problème MAIS il ne survient que lorsque je ferme mon macbook. Si je redémarre le système, il peut démarrer correctement, peut-être pas. Sinon, je redémarre et cela fonctionne généralement. Je suppose que probablement le problème dans l'IP / les ports, devinez seulement, car si je redémarre mon ordinateur portable avec des programmes non fermés (comme PHPStorm), cela ne fonctionnera généralement pas. Si je ferme tous les programmes en cours et que je le redémarre, cela fonctionne.

+1

@lewistaylor @shankiesan @michahell Comment docker-machine env default dans .bash_profile? Je ne suis pas très bon avec bash, alors j'apprécierais de l'aide pour mettre en œuvre ce correctif.

Déposez docker-machine / dinghy / boot2docker et utilisez docker pour mac, il est défini sur
devenir le runtime officiel
Le 3 juin 2016 à 08h03, "nwshane" [email protected] a écrit:

@lewistaylor https://github.com/lewistaylor @shankiesan
https://github.com/shankiesan @michahell https://github.com/michahell
Comment exporter les variables de la valeur par défaut d'environnement de docker-machine dans
.bash_profile? Je ne suis pas si bon avec bash, alors j'apprécierais de l'aide
implémentation de ce correctif.

-
Vous recevez cela parce que vous avez été mentionné.
Répondez directement à cet e-mail, affichez-le sur GitHub
https://github.com/docker/compose/issues/2180#issuecomment -223505966,
ou couper le fil
https://github.com/notifications/unsubscribe/AAeWNmFAR8k9Aszni-FDcGrkfK4dVEAeks5qH9GugaJpZM4GN-hv
.

@nwshane Modifiez simplement .bash_profile dans votre éditeur de texte préféré. Par exemple:

nano ~/.bash_profile et ajoutez les lignes que vous avez obtenues de docker-machine env default . Ensuite, vous devez source ce fichier - vous pouvez le faire en ouvrant et en fermant votre session de terminal, ou mieux, source ~/.bash_profile

Ça devrait le faire.

@shankiesan Super, merci! Cela a fait l'affaire. Je me déroutais en pensant que je devais exécuter docker-machine env default et récupérer les variables à partir de là - mais bien sûr, c'est ce que fait eval "$(docker-machine env default)" .

$ wordpress-compose eval $(docker-machine env wordpress)
$ wordpress-compose docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
443c7386f4ef wordpress "/entrypoint.sh apach" il y a 7 minutes Up 7 minutes 0.0.0.0:80->80/tcp wordpress_app
a790fdc3ca70 mysql "docker-entrypoint.sh" Il y a 14 minutes Up 14 minutes 0.0.0.0:3360->3306/tcp wordpress_db
$ wordpress-compose docker-compose up
ERREUR: impossible de se connecter au démon Docker - vous devrez peut-être exécuter docker-machine start default .`

$ wordpress-compose docker-compose --version
docker-compose version 1.8.0-rc1, build 9bf6bc6

$ wordpress-compose docker --version
Docker version 1.12.0-rc2, build 906eacd, expérimental

Voici mes informations, tout fonctionne bien si j'utilise docker run .......mysql..... et docker run ....link....wordpress , et je peux accéder au blog dans le navigateur. Quand je veux essayer docker-compose , ça ne marche pas. J'ai supprimé la machine par défaut, maintenant wordpress est en cours d'utilisation.

Pourriez-vous m'aider à découvrir ce qui ne va pas?

J'ai le même problème
mais je n'utilise pas docker-machine uniquement docker-compose
une idée ??

eval "$(docker-machine env default)" résout le problème

J'ai eu le même problème avec un service spécifique dans docker-compose.

C'était un problème d'autorisations ... les fichiers à télécharger sur le docker n'appartenaient pas à l'utilisateur actuel.

Identique à @Rots here = /

collez la commande:
eval "$ (docker-machine env default)"
sur votre terminal mac

"Error checking TLS connection: machine does not exist"
obtenir maintenant ce problème chaque fois que j'essaie d'utiliser la valeur par défaut d'environnement de docker-machine, j'ai essayé de charger à partir du bash_profile aussi, j'ai besoin d'aide!

Erreur SSL: EOF s'est produit en violation du protocole (_ssl.c: 777)

Cette page vous a été utile?
0 / 5 - 0 notes