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é.
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:
Docker Quickstart Terminal
docker-machine restart default
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)
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 aveceval "$(docker-machine env default)"