Je veux passer à Docker, donc je viens de commencer à jouer avec. J'ai installé Docker sur une installation VirtualBox Ubuntu 15.10 (Wily Werewolf) et comme suggéré ici, j'ai ensuite essayé d'exécuter une image Docker nginx de base :
$ docker run --name mynginx1 -P -d nginx
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
J'ai donc vérifié si Docker était en cours d'exécution:
$ sudo service docker status
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since vr 2015-11-06 08:41:48 CET; 15min ago
Docs: https://docs.docker.com
Main PID: 7542 (docker)
CGroup: /system.slice/docker.service
└─7542 /usr/bin/docker daemon -H fd://
nov 06 08:41:47 kramer65-VirtualBox systemd[1]: Starting Docker Application Container Engine...
nov 06 08:41:47 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:47.900410966+01:00" level=info msg="API ...ock"
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.033514149+01:00" level=info msg="Fire...lse"
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.141594321+01:00" level=info msg="Defa...ess"
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.416294436+01:00" level=warning msg="Y...it."
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.565507576+01:00" level=info msg="Load...rt."
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.567907022+01:00" level=info msg="Load...ne."
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.567945214+01:00" level=info msg="Daem...ion"
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.567969891+01:00" level=info msg="Dock....9.0
nov 06 08:41:48 kramer65-VirtualBox systemd[1]: Started Docker Application Container Engine.
Hint: Some lines were ellipsized, use -l to show in full.
Cela suggère que le démon Docker est en fait déjà en cours d'exécution, mais pour être sûr que je viens de démarrer le démon Docker manuellement:
$ sudo docker daemon
INFO[0000] API listen on /var/run/docker.sock
INFO[0000] [graphdriver] using prior storage driver "aufs"
INFO[0000] Firewalld running: false
INFO[0000] Default bridge (docker0) is assigned with an IP address XXX.XX.X.X/XX. Daemon option --bip can be used to set a preferred IP address
WARN[0000] Your kernel does not support swap memory limit.
INFO[0000] Loading containers: start.
INFO[0000] Loading containers: done.
INFO[0000] Daemon has completed initialization
INFO[0000] Docker daemon commit=76d6bc9 execdriver=native-0.2 graphdriver=aufs version=1.9.0
J'ai ensuite essayé de relancer l'image, mais avec le même résultat:
$ docker run --name mynginx1 -P -d nginx
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
J'ai essayé de lancer la commande, mais en vain. Qu'est-ce que je fais mal ici?
Réponses:
Vous devez ajouter votre utilisateur actuel au groupe de dockers comme suit:
puis déconnectez-vous et reconnectez-vous au système ou redémarrez le système. tester par
docker version
pour plus d'informations sur l'installation du moteur Docker, suivez la documentation Docker
la source
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
Ajouter l'utilisateur au groupe de dockers
Ajoutez le groupe de dockers s'il n'existe pas déjà:
sudo groupadd docker
Ajoutez l'utilisateur connecté "$ {USER}" au groupe de dockers:
sudo gpasswd -a ${USER} docker
Redémarrez le démon Docker:
sudo service docker restart
Faites un
newgrp docker
ou déconnectez-vous pour activer les modifications apportées aux groupes.la source
newgrp docker
soit local au shell, pas à la session de connexion. Cela ne ressort pas du tout de la page de manuel.Habituellement, la commande suivante fait l'affaire:
Ceci, au lieu des
docker start
cas où Docker semble déjà fonctionner.Si cela fonctionne, comme suggéré et dans une autre réponse et sur ce problème GitHub , si vous ne vous êtes pas ajouté dans le groupe docker, faites-le en exécutant:
Et vous êtes probablement prêt à partir.
En ce qui concerne quiconque se heurte à cela, dans le docker de certains systèmes d'exploitation ne démarre pas juste après son installation et, par conséquent, la même chose
can't connect to daemon message
apparaît. Dans ce cas, vous pouvez d'abord vérifier que Docker ne fonctionne pas en vérifiant l'état de votre service Docker en exécutant:Si la sortie ressemble à quelque chose comme:
docker stop/waiting
au lieu dedocker start/running, process 15378
cela, cela signifie évidemment que Docker n'est pas actif. Dans ce cas, assurez-vous de le démarrer avec:Et, comme auparavant, vous serez probablement prêt à partir.
la source
note à moi-même: je reçois l'erreur du titre de la question quand j'oublie d'exécuter la
docker
commande avecsudo
:sudo docker run ...
[Ubuntu 15.10]
la source
J'ai eu le même problème et ce qui a fonctionné pour moi était:
Vérifier la propriété de /var/run/docker.sock
Si vous n'êtes pas le propriétaire, changez de propriétaire avec la commande
Ensuite, vous pouvez continuer et essayer d'exécuter les commandes du docker sans tracas: D
la source
root
mais endocker
groupe. La bonne approche consiste à affecter votre utilisateur actuel audocker
groupe, selon la documentation de Docker:sudo groupadd docker && sudo usermod -aG docker $USER
Après avoir tout installé et démarré le service, essayez de fermer votre terminal et de l'ouvrir à nouveau, puis essayez de tirer votre image
Éditer
J'ai également eu ce problème à nouveau, si la solution ci-dessus ne fonctionne pas, essayez cette solution qui est la commande ci-dessous
Considérations
Si la commande ci-dessus fonctionne, vous rencontrez probablement des problèmes de docker réseau, de toute façon cela le résout, pour confirmer cela, consultez le journal avec la commande ci-dessous
Si la sortie a quelque chose comme ça
Vous êtes vraiment avec des problèmes de réseau, mais je ne sais pas encore si la prochaine fois que vous redémarrerez ( mise à jour , 2 mois sans problème à nouveau) votre système d'exploitation obtiendra à nouveau ce problème et s'il s'agit d'un bug ou d'un problème d'installation
Ma version docker
la source
Après avoir installé Docker sur Ubuntu, j'ai exécuté la commande suivante:
L'as tu essayé?
la source
J'ai eu le même problème. Je me bats depuis deux jours pour le résoudre.
Cela n'a fonctionné que lorsque j'ai fait:
Selon le Tutoriel de Docker , vous devez ajouter la clé Docker si elle n'a pas déjà été ajoutée en utilisant:
$ sudo wget -qO- https://get.docker.com/gpg | sudo apt-key add -
Assurez-vous ensuite de vous accorder des privilèges de docker en utilisant:
$ sudo usermod -aG docker $USER
J'espère que ça va t'aider aussi.
la source
sudo usermod -aG docker $USER
entrez en tant que root (
sudo su
) et essayez ceci:J'ai le même problème ici, et la commande docker ne fonctionnait qu'en tant que root, et aussi avec cela
DOCKER_HOST
videPS: sachez également que la façon correcte et officielle d'installer sur Ubuntu est d'utiliser leurs dépôts apt (même le 15.10), pas avec ce truc " wget ".
la source
Pour OSX :
Après avoir ouvert Docker et démarré la machine "par défaut" via le terminal de démarrage rapide ( https://docs.docker.com/engine/installation/mac/ ), vous essayez les commandes docker et obtenez ce message "impossible de se connecter au démon docker" , il s'avère que vous avez besoin d'un ensemble de variables env :
eval "$(docker-machine env default)"
Essayez ensuite avec
docker run hello-world
pour voir si tout est pêche.la source
Pour ceux qui ont déjà essayé de redémarrer votre machine, en désactivant la variable d'environnement DOCKER_HOST comme indiqué dans la documentation de docker env et tout le reste, essayez simplement d'utiliser le
Seulement cela a fait l'affaire pour moi même après avoir redémarré la machine.
la source
Donner un accès non root - depuis docker
Ajoutez le groupe de dockers s'il n'existe pas déjà.
Ajoutez l'utilisateur connecté "$ {USER}" au groupe de dockers.
Modifiez le nom d'utilisateur pour qu'il corresponde à votre utilisateur préféré.
Vous devrez peut-être vous déconnecter et vous reconnecter pour que cela prenne effet.
Redémarrez le démon Docker.
la source
Cette question est actuellement numéro 3 sur une recherche Google. Après avoir fait quelques recherches pour résoudre ce problème sur mon système Linux, j'ai pensé que j'écrirais cette réponse. Le message d'origine indique que le problème est sur Ubuntu, mais j'ai également rencontré le problème en utilisant Fedora. Dans cet esprit, voici ce que j'ai fait pour résoudre le problème.
Sur Fedora 22
Installation de Docker:
Après avoir installé Docker:
Un utilisateur doit être ajouté au groupe Docker.
Le démon docker doit être démarré
Vous pouvez configurer le démon pour qu'il démarre au démarrage
Vous pouvez vérifier que le service Docker est en cours d'exécution
Et une dernière vérification finale
la source
dockerroot
. En outre, vous souhaiterez probablement l'installer à partir du référentiel (au lieu decurl ... | sh
) afin qu'il puisse être mis à jour plus tard:dnf install docker
groupadd docker
puis l'ajouter à votre nom d'utilisateursudo usermod -aG docker your_username
Essayez d'utiliser "sudo" avec la commande que vous exécutez.
la source
J'ai le même problème lors de l'exécution de Docker.
vous pouvez exécuter des commandes en tant qu'utilisateur sudo :
la source
Pour Ubuntu: est
arrivé avec moi lorsque j'ai mis à jour docker.
Vous devez démasquer le service et le socket, puis redémarrer le service.
Les suivants ont fonctionné pour moi:
Ce qui s'est passé dans les coulisses
systemd a également la possibilité de marquer une unité comme complètement impossible à démarrer, automatiquement ou manuellement, en la liant à / dev / null. Cela s'appelle masquer l'unité et est possible avec la commande mask.
Vous pouvez consulter la liste des services masqués en utilisant:
Pour activer le démarrage automatique / manuel du service, vous devez le démasquer en utilisant:
Maintenant, le service sera activé comme indiqué ci-dessous
la source
Comme docker se lie à un socket Unix qui appartient à root lors du démarrage, l'utilisation de 'sudo' avec les commandes docker fonctionnera.
la source
la source
Peut-être que cela aidera quelqu'un, car le message d'erreur est extrêmement inutile et j'ai parcouru toutes les étapes d'autorisation standard plusieurs fois en vain.
Docker laisse parfois des variables d'environnement fantômes en place qui bloquent l'accès, bien que votre système soit correctement configuré. Les commandes shell suivantes peuvent le rendre à nouveau accessible, si vous l'avez exécuté à un moment donné et qu'il a juste cessé de coopérer après un redémarrage:
J'avais une installation de docker qui fonctionnait auparavant, et après avoir redémarré mon ordinateur portable, il a simplement refusé de fonctionner. A été correctement ajouté au groupe d'utilisateurs de docker, a les autorisations correctes sur le socket, etc, mais ne pouvait toujours pas courir
docker login
,docker run ...
etc. Ce qu'il fixe pour moi. Malheureusement, je dois l'exécuter à chaque redémarrage. Ceci est mentionné sur quelques problèmes de github également comme solution de contournement, bien qu'il semble être un bug qu'il s'agit d'une barrière persistante au bon fonctionnement de Docker (remarque: je suis sur Arch Linux, pas OSX, mais c'était le même problème pour moi).la source
Testé dans Ubuntu 16.04
la source
J'ai rencontré la même erreur sur l'instance Amazon EC2. Le problème a été résolu après le redémarrage de l'instance.
la source
Ajouter l'utilisateur actuel au groupe de dockers:
sudo usermod -aG docker $(whoami)
la source
--
versions longues (en commençant par ) des options.Pour Ubuntu 16.04
/lib/systemd/system/docker.service
Changement de fichier interne:avec:
/etc/init.d/docker
Changement de fichier interne:avec:
puis redémarrez votre ordinateur.
la source