web-dev-qa-db-fra.com

Impossible de se connecter au démon Docker. Le démon docker s'exécute-t-il sur cet hôte?

J'ai installé Docker sur Ubuntu 14.04, il m'a dit que l'installation avait réussi. Ensuite, je suis entré Sudo docker version, il est revenu

Client:
 Version:      1.9.1
 API version:  1.21
 Go version:   go1.4.2
 Git commit:   a34a1d5
 Built:        Fri Nov 20 13:12:04 UTC 2015
 OS/Arch:      linux/AMD64
Cannot connect to the Docker daemon. Is the docker daemon running on this host?

Je suis entré Sudo service docker status, J'ai eu

docker start/running, process 8063

J'ai essayé Sudo docker images et Sudo docker info, J'ai la même réponse:

Cannot connect to the Docker daemon. Is the docker daemon running on this host?

Je ne sais pas pourquoi il a renvoyé ceci, j'ai essayé de tirer ubuntu en utilisant Sudo docker pull ubuntu, et obtenu

Using default tag: latest
Cannot connect to the Docker daemon. Is the docker daemon running on this host?

Veuillez me dire comment puis-je résoudre ce problème, comment puis-je extraire et exécuter l'image docker. Et est docker -d le même que docker deamon?

41
thiiiiiking

Vous devez ajouter votre utilisateur actuel au groupe docker comme suit:

Sudo usermod -aG docker <your username>

Vous pouvez également utiliser la variable d'environnement USER comme:

Sudo usermod -aG docker $USER

Redémarrez ensuite le système. Comme le dit le docker documentation :

Le docker démon se lie à un socket Unix au lieu d'un Port TCP . Par défaut, le socket Unix appartient à l'utilisateur root et les autres utilisateurs peuvent y accéder avec Sudo. Pour cette raison, le démon docker s'exécute toujours en tant qu'utilisateur root.

Pour éviter d'avoir à 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 lisible/inscriptible par le groupe docker.

47
Ali Dehghani

Si l'ajout d'un utilisateur au groupe docker ne fonctionne pas, essayez de redémarrer le service:

Sudo service docker restart 
5
Pratik Singhal

La seule façon qui a fonctionné pour moi (sur Ubuntu Xenial):

Sudo groupadd docker
Sudo gpasswd -a ${USER} docker
Sudo service docker restart
newgrp docker

Trouvé ici

2
rideronthestorm

Dans mon cas, la réponse de travail est

$ docker-machine create -d virtualbox default
$ eval "$(docker-machine env default)"
1
mnv

Si toutes les autres solutions ci-dessus ne fonctionnent pas, vous pouvez essayer de vérifier la propriété de /var/run/docker.sock:

ls -l /var/run/docker.sock

Si vous n'êtes pas le propriétaire, changez de propriétaire avec la commande:

Sudo chown *your-username* /var/run/docker.sock

Ensuite, vous pouvez continuer et essayer d'exécuter les commandes Docker sans tracas: D

1
kevthanewversi

Je ne sais pas si d'autres ont utilisé cette approche, mais lorsque je suis confronté à ce problème de "Le démon docker fonctionne-t-il sur cet hôte?", La suppression des variables d'environnement liées au docker permet de reconnaître le démon docker exécuté sur ma machine. Le même message d'erreur apparaît lorsque j'ouvre un nouvel onglet dans la fenêtre du terminal et que la réinitialisation a aidé à le résoudre.

unset ${!DOCKER_*} 
0
Shashi