Je reçois un message d'erreur indiquant que je ne peux pas me connecter au démon docker. J'ai examiné les réponses d'autres personnes qui ont eu des problèmes similaires, mais cela n'a pas aidé. J'utilise la version d'Ubuntu 15.10. Je vais essayer de fournir toutes les informations que j'ai.
root@# docker-compose -f docker-compose-deps.yml up -d
ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?
If it's at a non-standard location, specify the URL with the DOCKER_Host environment variable.
Version Docker
root@# Sudo docker version
Client:
Version: 1.9.1
API version: 1.21
Go version: go1.4.2
Git commit: a34a1d5
Built: Fri Nov 20 13:20:08 UTC 2015
OS/Arch: linux/AMD64
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
Version Docker-Compose
root@# docker-compose --version
docker-compose version 1.5.2, build 7240ff3
C'est ce qui se passe si j'essaie d'arrêter ou de démarrer le service ...
root@# Sudo service docker stop
stop: Unknown instance:
root@# Sudo service docker start
docker start/running, process 5375
Si je lance ps aux | grep docker
root@# ps aux | grep docker
root 4233 0.0 0.0 13692 2204 pts/15 S+ 10:27 0:00 grep --color=auto docker
Toute aide serait grandement appréciée. Faites-moi savoir si vous avez besoin de plus d'informations.
J'ai trouvé cela et cela a semblé résoudre mon problème.
GitHub Fix Docker Daemon Crash
J'ai changé le contenu de mon fichier docker-compose-deps.yml, comme indiqué dans le lien. Puis j'ai lancé docker-compose -f docker-compose-deps.yml up -d
. Puis je l'ai changé et cela a fonctionné pour une raison quelconque. Je n'avais pas à continuer les étapes dans le lien que j'ai fourni, mais les deux premières étapes ont résolu le problème pour moi.
J'ai eu la même erreur, après 15 min de débogage. Il s'avère que tout ce dont il a besoin est un Sudo
:) Cliquez sur [Créer un groupe Docker] ici https://docs.docker.com/engine/installation/linux/ubuntulinux/ pour obtenir débarrasser du préfixe Sudo.
Il semble que votre problème ait été créé par un ancien bogue Docker, le fichier de socket n’ayant pas été recréé après la panne de Docker. Si tel est le problème, alors renommer le fichier de socket devrait lui permettre d'être recréé:
$ Sudo service docker stop
$ Sudo mv /var/lib/docker /var/lib/docker.bak
$ Sudo service docker start
Depuis que ce bogue est corrigé, la plupart des gens qui obtiennent l'erreur Couldn't connect to Docker daemon
l'obtiennent probablement parce qu'ils ne font pas partie du groupe docker
et qu'ils ne sont pas autorisés à lire ce fichier. Courir avec Sudo docker ...
résoudra ce problème, mais ce n’est pas une bonne solution.
Docker peut être exécuté en tant qu'utilisateur non root (sans Sudo
) disposant des autorisations de groupe appropriées. Le documentation de post-installation Linux contient les détails. La version courte:
$ Sudo groupadd docker
$ Sudo usermod -aG docker $USER
# Log out and log back in again to apply the groups
$ groups # docker should be in the list of groups for your user
$ docker run hello-world # Works without Sudo
Cela permet aux utilisateurs du groupe docker
d'exécuter les commandes docker
et docker-compose
sans Sudo
. Docker lui-même exécute une racine, autorisant certaines attaques. Vous devez donc rester prudent avec les conteneurs que vous exécutez. Voir Documentation de Docker Security pour plus de détails.
J'ai eu ce problème et je ne voulais pas gâcher les choses en utilisant Sudo
. En enquêtant, j'ai essayé d'obtenir des informations:
docker info
De manière surprenante, j'ai eu l'erreur suivante:
Obtention de l'autorisation refusée lors d'une tentative de connexion au socket du démon Docker sous unix: ///var/run/docker.sock: Get http: ///var/run/docker.sock/v1.38/info : composez unix /var/run/docker.sock: connectez-vous: permission refusée
Pour une raison quelconque, je n'avais pas assez de privilèges, la commande suivante a résolu mon problème:
Sudo chown $USER /var/run/docker.sock
Et voilà !
J'ai eu le même problème. Après avoir pris des notes et analysé certains résultats de débogage, j'ai finalement résolu ce qui peut être la même erreur. Commencez le service d'abord,
service docker start
N'oubliez pas d'inclure votre utilisateur dans le groupe de menus.
J'ai eu cette erreur quand il y avait des fichiers dans le répertoire Dockerfile
qui n'étaient pas accessibles par l'utilisateur actuel. docker
ne pouvait donc pas télécharger le contexte complet dans le démon et apportait le message "impossible de se connecter au démon Docker à http + docker: // localunixsocket".
D'après le résultat de "ps aux | grep docker", il semble que le démon docker n'est pas en cours d'exécution. Essayez d’utiliser les méthodes ci-dessous pour voir ce qui ne va pas et pourquoi Docker ne démarre pas
$ Sudo tail -f /var/log/upstart/docker.log
Sudo docker -d -D
Une autre raison pour laquelle cette erreur peut apparaître: pour moi, il s’agissait d’une définition de chemin d’image malformée dans le docker-compose.yml
:
service:
image: ${CONTAINER_REGISTRY_BASE}/my-service
...
Lookis ok d'abord, mais j'avais CONTAINER_REGISTRY_BASE=eu.gcr.io/my-project/
réglé sur env. Apparemment, le //
dans le chemin de l'image a provoqué cette erreur.
docker-compose: v.1.21.2
docker: 18.03.1-ce
Dans mon cas, votre service de docker pourrait être arrêté
Commande pour démarrer le service Docker:
$ Sudo systemctl start docker
Commande pour vérifier si elle démarre:
$ Sudo docker run hello-world
Vous devriez ajouter votre utilisateur au groupe "docker" avec quelque chose comme:
Sudo usermod -aG docker your-user
J'ai utilisé Ubuntu 16.04 et j'ai trouvé ce problème aussi lorsque j'ai utilisé docker-compose. Je l'ai corrigé en exécutant cette commande.
$ Sudo systemctl start docker
$ Sudo docker-compose build
Dans mon cas, la même erreur se produit lorsque j'essaie de docker-compose build
et que ma solution consiste simplement à ajouter Sudo
Sudo docker-compose build
exécuter ceci en tant que Sudo
a résolu le problème pour moi
Est-il possible que vous effaciez la machine par défaut? Mais, vérifiez d’abord si tous les fichiers sont là (OSX, similaire sur d’autres systèmes)
brew install docker docker-compose docker-machine xhyve docker-machine-driver-xhyve
brew link docker docker-compose docker-machine xhyve docker-machine-driver-xhyve
Sudo chown root:wheel /usr/local/opt/docker-machine-driver-xhyve/bin/docker-machine-driver-xhyve
Sudo chmod u+s /usr/local/opt/docker-machine-driver-xhyve/bin/docker-machine-driver-xhyve
Installez également Docker App, car il est beaucoup plus facile de gérer les conteneurs:
brew cask reinstall docker
et lancez l'application Docker à partir du Finder (attendez que le service soit complètement démarré)
Ensuite, vérifiez l’installation avec:
docker-machine ls
si aucune machine n'est présente dans la liste, créez-en une et démarrez-la:
docker-machine create default
docker-machine start default
Après cela, les commandes de construction, de composition et toutes les autres commandes doivent fonctionner correctement.