J'ai installé docker-machine 0.1.0 et docker-compose 1.1.0 sur Mac OS 10.8.5.
Docker-machine fonctionne normalement et peut se connecter par docker-machine ssh.
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM
dev * virtualbox Running tcp://192.168.99.100:2376
Cependant, impossible de se connecter à partir de docker-compose.
$ docker-compose up
Impossible de se connecter au démon Docker à l'adresse http + unix: //var/run/docker.sock - est-il en cours d'exécution?
S'il se trouve à un emplacement non standard, spécifiez l'URL avec la variable d'environnement DOCKER_HOST.
Mon Dockerfile et docker-compose.yml sont ici.
Dockerfile
FROM centos:centos7
DOCKER_HOST tcp://192.168.99.100:2376
docker-compose.yml
web:
build: .
Pourquoi ne peut pas se connecter? Des idées?
docker
docker-compose
DIGITALSQUAD
la source
la source
docker-machine
tant que root? Je viens de venir ici avec le même problème sur Ubuntu et c'était les autorisations sur le socket - asudo
fait l'affaire.sudo service docker restart
ousudo service docker start
je l'ai résolu avec ça.Réponses:
La machine Docker est en cours d'exécution. Mais vous devez exporter un environnement pour vous connecter à la machine Docker. Par défaut, le
docker
client CLI tente de communiquer avec le démon en utilisanthttp+unix://var/run/docker.sock
(comme indiqué dans le message d'erreur).Exportez les variables d'environnement correctes à l'aide de
eval $(docker-machine env dev)
, puis réessayez. Vous pouvez également simplement exécuterdocker-machine env dev
pour voir les variables d'environnement qu'il exportera. Notez que l'un d'entre eux l'estDOCKER_HOST
, tout comme le message d'erreur le suggère, vous devrez peut-être définir.la source
eval "$(docker-machine env default)"
) dans votre bin / postactivate pour vous assurer qu'elle est toujours à jour.$ eval $(docker-machine env dev) Command 'docker-machine' not found, but can be installed with: sudo snap install docker
Solution simple pour moi:
sudo docker-compose up
MISE À JOUR 2016-3-14: À un moment donné du processus d'installation de docker (ou docker-compose?), Il y a une suggestion et un exemple pour ajouter votre nom d'utilisateur au groupe «docker». Cela vous permet d'éviter d'avoir besoin de "sudo" avant toutes les commandes du docker, comme ceci:
Regardez attentivement la sortie des commandes d'installation (docker et la 2ème installation pour docker-compose) et vous trouverez l'étape nécessaire. Il est également documenté ici: https://subosito.com/posts/docker-tips/
MISE À JOUR 2017-3-9
Les instructions d' installation de Docker ont été mises à jour ici.
Étapes de post-installation pour Linux
Cette section contient des procédures facultatives pour configurer les hôtes Linux afin qu'ils fonctionnent mieux avec Docker.
Gérer Docker en tant qu'utilisateur non root
Le démon docker se lie à un socket Unix au lieu d'un port TCP. Par défaut, ce socket Unix appartient à l'utilisateur root et les autres utilisateurs ne peuvent y accéder qu'en utilisant sudo. Le démon docker s'exécute toujours en tant qu'utilisateur root.
Si vous ne souhaitez pas utiliser sudo lorsque vous utilisez la commande docker, créez un groupe Unix appelé docker et ajoutez-y des utilisateurs. Lorsque le démon docker démarre, il rend la propriété du socket Unix accessible en lecture / écriture par le groupe docker.
Pour créer le groupe Docker et ajouter votre utilisateur:
Cette commande télécharge une image de test et l'exécute dans un conteneur. Lorsque le conteneur s'exécute, il imprime un message d'information et se ferme.
la source
newgrp docker
sudo docker-compose up
". Quand j'essaye ça, j'obtiens:sudo: docker-compose: command not found
Si vous avez commencé à utiliser docker
sudo
, vous devez exécuter docker-compose up avecsudo
Like:sudo docker-compose up
la source
sudo docker-compose build
au lieu dedocker-compose build
.Par défaut, le démon docker s'exécute toujours en tant qu'utilisateur root, vous devez donc ajouter
sudo
vos commandes Docker.Si vous ne souhaitez pas utiliser sudo lorsque vous utilisez la commande docker, créez un groupe Unix appelé docker et ajoutez-y des utilisateurs. Lorsque le démon docker démarre, il rend la propriété du socket Unix accessible en lecture / écriture par le groupe docker.
Pour créer le groupe Docker et ajouter votre utilisateur:
Créez le groupe Docker.
$ sudo groupadd docker
Ajoutez votre utilisateur au groupe Docker.
$ sudo usermod -aG docker $USER
Déconnectez-vous et reconnectez-vous pour que votre appartenance à un groupe soit réévaluée.
Vérifiez que vous pouvez docker les commandes sans sudo.
$ docker run hello-world
Cette commande télécharge une image de test et l'exécute dans un conteneur. Lorsque le conteneur s'exécute, il imprime un message d'information et se ferme.
Les étapes décrites ci-dessus proviennent de la documentation officielle de Docker .
la source
docker-compose
tant que propriétaire de/usr/local/bin/docker-compose
puis de redémarrer le servicegroup
l'abonnement peut être actualisé avecsu - $USER
pour économiser la déconnexion et la connexionLorsque vous obtenez une erreur :
La solution serait:
Tout d'abord, essayez de vérifier que le service Docker est opérationnel comme prévu sur votre machine distante / locale:
sudo service docker status
sinon - exécutez
sudo service docker start
ousudo systemctl start docker
(dépend de certaines versions de Linux, consultez les instructions de démarrage de Docker ).Deuxièmement, démarrez docker en tant que sudo
sudo docker-compose up
la source
sudo systemctl start docker
- pour démarrer le service Docker.sudo docker-compose up
après ça.J'ai Fedora 26, et en essayant de résoudre le même problème, je suis finalement entré dans Docker Compose sur la page des développeurs Fedora , puis dans Docker sur la page des développeurs Fedora , ce qui m'a aidé.
Probablement, le service docker est considéré par la communauté comme commençant avec le système et fonctionnant en arrière-plan tout le temps, mais pour moi, ce n'était pas si évident, et c'est la raison pour laquelle je peux penser à l'absence de réponse populaire comme celle-ci.
Sur la page des développeurs de Fedora, il y a des instructions pour activer Docker pour démarrer avec le système:
sudo systemctl enable docker
la source
systemctl
parlaunchctl
si vous exécutez sur mac.Si vous êtes sous Linux, vous ne l'avez peut-être pas
docker-machine
installé car il n'est installé par défaut que sur les ordinateurs Windows et Mac.Si tel est le cas, vous devrez vous rendre sur: https://docs.docker.com/machine/install-machine/ pour trouver des instructions sur la façon de l'installer sur votre version de Linux.
Après l'installation, réessayez d'exécuter
docker-compose up
avant d'essayer tout ce qui est répertorié ci-dessus.J'espère que cela aide quelqu'un. Cela a fonctionné pour mon installation devilbox dans Fedora 25.
la source
Outre l'ajout d'utilisateurs au groupe docker, pour éviter de taper de manière
sudo
répétitive, vous pouvez également créer un alias pour desdocker
commandes comme celle-ci:la source
si vous utilisez docker-machine, vous devez activer l'environnement à l'aide de la variable env . au cas où vous n'utilisez pas docker-machine, exécutez vos commandes avec sudo
la source
Quelqu'un a vérifié le journal?
Dans mon cas, le message d'erreur
/var/log/upstart/docker.log
était:Il vaut la peine de mentionner que j'avais activé VPN, donc:
$ sudo service openvpn stop $ sudo service docker restart $ docker-compose up|start $ sudo service openvpn start
était la solution.la source
La réponse de @srfrnk fonctionne pour moi.
Dans ma situation, j'avais le prochain fichier docker-compose.yml:
./docker-runtime
propriétaire et groupe - estroot
lorsque l'autre propriétaire de fichiers - mon utilisateur. Quand j'ai essayé de construirenginx
J'ai ajouté
./docker-runtime
à.dockerignore
et il est résolu mon problème.la source
en cours d'exécution
docker-compose pull
- j'obtenais une erreur ci-dessousest-ce que ça marche?
Solution -
problème résolu
la source
J'ai eu les mêmes symptômes.
Seulement diffère que cela ne s'est produit que pendant le
docker-compose build
docker ps
travail. Arrivé avec la version2.x
ainsi que3.x
.docker
Service redémarré , puis la machine ... Même réinstalléedocker
+docker-compose
.J'ai tout essayé mais rien n'a aidé.
Enfin, j'ai essayé de créer le Dockerfile "manuellement" en utilisant
docker build
.Apparemment, j'ai eu un problème d'autorisation sur un fichier / dossier dans le
Docker
contexte. Il essayait de lire le contexte lors du démarrage de la construction et a échoué avec un message d'erreur approprié. Cependant, ce message d'erreur ne s'est pas propagé àdocker-compose
qui neCouldn't connect to Docker daemon at http+unix://var/run/docker.sock - is it running?
Ayant trouvé que la solution était simplement d'ajouter le fichier / dossier au
.dockerignore
fichier car il n'était pas nécessaire pour la construction. Une autre solution aurait pu êtrechown
ouchmod
cela.Quoi qu'il en soit, cela pourrait aider quelqu'un à rencontrer le même problème qui n'a vraiment rien à voir avec
docker
le message d'erreur trompeur affiché.la source
chown
/chmod
corrigé. Message d'erreur terrible mais ils y travaillent. Voir github.com/docker/compose/issues/5318$ sudo docker-compose up
J'ai suivi les étapes telles qu'elles figurent dans la réponse ci-dessus pour ajouter $ USER au menu fixe de groupe. Je ne voulais pas ajouter un nouveau menu fixe de groupe car dans mon installation de docker, un groupe nommé docker a été créé automatiquement.
Docker CE est installé et en cours d'exécution. Le groupe Docker est créé mais aucun utilisateur n'y est ajouté. Vous devez utiliser sudo pour exécuter les commandes Docker. Continuez vers la post-installation Linux pour permettre aux utilisateurs non privilégiés d'exécuter des commandes Docker et pour d'autres étapes de configuration facultatives.
mais l'utilisation de docker-compose up ne fonctionnait pas non plus. Il a donné la même erreur précédente. Donc, dans mon cas (Ubuntu 18.10), sudo docker-compose up a résolu le problème.
ps: @Tiw merci pour les conseils.
la source
Je sais que c'est idiot, mais dans mon cas, j'ai juste essayé avec
sudo
et ça a fonctionné comme un charme.dans votre cas, essayez:
$ sudo docker-compose up
la source
essaye ça:
sudo ln -s / usr / local / bin / docker-compose / usr / bin / docker-compose
la source
J'ai résolu le problème en suivant les étapes suivantes
maintenant docker-compose up fonctionne
la source
Pour moi, j'ai commencé à mettre à jour Docker et à annuler à mi-chemin. Je n'ai pas remarqué que Docker ne fonctionnait pas (si c'était le cas, il y a une icône dans la barre de navigation supérieure de mon Macbook, par la batterie restante, le temps, etc.). Une fois que je l'ai lancé et terminé la mise à niveau, j'ai à
docker-compose up
nouveau travaillé!la source
Ma configuration a deux cas pour cette erreur:
__pycache__
les fichiers créés par l'utilisateur root après avoir exécuté des tests d'intégration à l'intérieur du conteneur sont inaccessibles pour docker (vous indique le problème d'origine) et docker-compose (vous parle de l'hôte de docker de manière ambiguë);microk8s
bloqué mon port jusqu'à ce que je l'arrête.la source
Essayez d'exécuter
dockerd
ousudo dockerd
si nécessaire, démarrez d'abord le démon. Si vous commencezdockerd
avecsudo
vous pouvez exécuterdocker-compose up
avecsudo
aussi. sinon ça va.Solution de travail de https://github.com/docker/compose/issues/4181
la source
me déconnecter puis me reconnecter m'a aidé. Dans mon cas, il s'agissait d'une nouvelle installation, j'ai créé un nouvel utilisateur, un nouveau groupe puis ajouté l'utilisateur au groupe docker.
sortie sortie
puis ssh dans le serveur à nouveau
la source
Ce qui suit a fonctionné pour moi, je ne sais pas quelle partie a fait l'affaire:
la source