Je veux passer à Docker, alors je viens juste de commencer à le gâcher. J'ai installé Docker sur une installation de VirtualBox Ubuntu 15.10 (Wily Werewolf) et comme suggéré ici j'ai ensuite essayé d'exécuter une image de base nginx Docker:
$ 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 fonctionnait:
$ 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 déjà en cours d'exécution, mais pour être sûr, je viens de le démarrer 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 faire une commande Sudo'ing, mais en vain. Qu'est-ce que je fais mal ici?
Vous devez ajouter votre utilisateur actuel [supposez que vous êtes connecté en tant qu'ubuntu] au groupe d'ancrage comme suit
Sudo usermod -aG docker $(whoami)
puis logout & reconnectez-vous dans le système ou redémarrez-le . test by docker version
pour plus d'informations comment installer docker-engine, suivez la documentation de docker
Ajouter l'utilisateur au groupe de docker
Ajoutez le groupe de menu fixe s'il n'existe pas déjà:
Sudo groupadd docker
Ajoutez l'utilisateur connecté "$ {USER}" au groupe de menus fixes:
Sudo gpasswd -a ${USER} docker
Redémarrez le démon Docker:
Sudo service docker restart
Effectuez un newgrp docker
ou déconnectez-vous/ouvrez pour activer les modifications apportées aux groupes
Habituellement, la commande suivante fait l'affaire:
Sudo service docker restart
Ceci, au lieu de docker start
pour les cas où Docker semble déjà être en cours d'exécution.
Si cela fonctionne alors, comme suggéré et dans une autre réponse et sur ce problème de GitHub , si vous ne vous êtes pas ajouté dans le groupe de docker, exécutez-le en exécutant:
Sudo usermod -aG docker <your-username>
Et vous êtes probablement prêt à partir.
Pour ce qui est des autres utilisateurs, le menu fixe de certains systèmes d’exploitation ne démarre pas juste après l’avoir installé et, par conséquent, le même 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 de menu fixe en exécutant:
Sudo service docker status
Si la sortie ressemble à quelque chose comme: docker stop/waiting
au lieu de docker start/running, process 15378
, cela signifie évidemment que Docker n'est pas actif. Dans ce cas, assurez-vous de commencer par:
Sudo service docker start
Et, comme avant, vous serez probablement prêt à partir.
note à moi-même: je reçois l'erreur du titre de la question lorsque j'oublie d'exécuter la commande docker
avec Sudo
:
Sudo docker run ...
[Ubuntu 15.10]
Avait le même problème et ce qui a fonctionné pour moi était:
Vérification de 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 du menu fixe sans tracas: D
Après tout installer et démarrer le service, essayez de fermer votre terminal et ouvrez-le à nouveau, puis essayez de tirer votre image
J'ai également eu cette question encore une fois, si la solution ci-dessus ne fonctionne pas, essayez cette solution c'est la commande ci-dessous
Sudo mv /var/lib/docker/network/files/ /tmp/dn-bak
Si la commande ci-dessus fonctionne, vous avez probablement des problèmes avec le menu fixe du réseau. Quoi qu'il en soit, cela le résout. Pour le confirmer, consultez le journal avec la commande ci-dessous.
tail -5f /var/log/upstart/docker.log
Si la sortie a quelque chose comme ça
FATA[0000] Error starting daemon: Error initializing network controller: could not delete the default bridge network: network bridge has active endpoints
/var/run/docker.sock is up
Vous êtes vraiment avec des problèmes de réseau, mais je ne sais pas encore si le prochain redémarrage (update, 2 mois plus aucun problème) votre OS aura ce problème à nouveau et si c'est un problème. bug ou problème d'installation
Ma version de docker
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
Server:
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
Après avoir installé docker sur Ubuntu, j’ai lancé la commande suivante:
Sudo service docker start
L'as tu essayé?
J'ai eu le même problème. Cela fait deux jours que nous luttons pour le résoudre.
Cela ne fonctionnait que quand je le faisais:
Selon 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 les privilèges de docker en utilisant:
$ Sudo usermod -aG docker $USER
J'espère que ça va t'aider aussi.
entrez en tant que root (Sudo su
) et essayez ceci:
unset DOCKER_Host
docker run --name mynginx1 -P -d nginx
J'ai le même problème ici, et la commande docker n'a fonctionné que sous root, et aussi avec ce DOCKER_Host
vide
PS: Méfiez-vous aussi que le moyen correct et officiel d'installer sur Ubuntu consiste à utiliser leurs dépôts apt (même le 15.10), not avec que "wget" chose.
Pour ceux qui ont déjà essayé de redémarrer votre ordinateur, désactivez la variable d’environnement DOCKER_Host comme indiqué dans la documentation docker env
Sudo service docker restart
Ce n’est que cela qui a fonctionné pour moi, même après le redémarrage de la machine.
Cette question est actuellement le numéro 3 sur une recherche Google. Après avoir fait quelques recherches pour résoudre ce problème sur mon système Linux, je pensais écrire cette réponse. La publication d'origine indique que le problème concerne Ubuntu, mais j'ai également rencontré le problème avec Fedora. Dans cet esprit, voici ce que j'ai fait pour résoudre le problème.
Sur Fedora 22
Installation de Docker:
$> curl -fsSL https://get.docker.com/ | sh
Après avoir installé Docker:
Un utilisateur doit être ajouté au groupe de menus.
$> Sudo usermod -aG docker
Le démon docker doit être démarré
$> Sudo service docker start
Vous pouvez configurer le démon pour qu'il démarre au démarrage
$> Sudo chkconfig docker on
Vous pouvez vérifier que le service Docker est en cours d'exécution
$> service docker status
Et un dernier contrôle final
$> docker run hello-world
Ajoutez le groupe de dockers s'il n'existe pas déjà.
$ Sudo groupadd docker
Ajoutez l'utilisateur connecté "$ {USER}" au groupe de menus fixes.
Changez le nom d'utilisateur pour correspondre à votre utilisateur préféré.
Vous devrez peut-être vous déconnecter et vous reconnecter pour que
$ Sudo gpasswd -a ${USER} docker
Redémarrez le démon Docker.
$ Sudo service docker restart
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.
La suite a fonctionné pour moi:
systemctl unmask docker.service
systemctl unmask docker.socket
systemctl start docker.service
Que s'est-il passé dans les coulisses
systemd a également la possibilité de marquer une unité comme complètement imparable, automatiquement ou manuellement, en la liant à/dev/null. Ceci s'appelle masquer l'unité, et est possible avec la commande mask.
Sudo systemctl mask docker.service
Vous pouvez consulter la liste des services masqués en utilisant:
Sudo systemctl list-unit-files
Pour activer le démarrage automatique/manuel du service, vous devez le démasquer à l'aide de:
Sudo sytemctl unmask docker.service
J'ai le même problème lors de l'exécution de docker.
vous pouvez exécuter des commandes en tant que Sudo user:
Sudo docker ***your command here***
Essayez d'utiliser "Sudo" avec la commande que vous exécutez.
Comme docker se lie à un socket unix qui appartient à root lors du démarrage, utiliser «Sudo» avec les commandes du docker fonctionnera.
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.
Peut-être que cela aidera quelqu'un, car le message d'erreur est extrêmement inutile et que j'avais suivi toutes les étapes d'autorisation standard de nombreuses fois sans résultat.
Docker laisse parfois des variables d'environnement fantôme en place qui bloquent l'accès, même si votre système est configuré correctement. Les commandes suivantes du shell peuvent le rendre à nouveau accessible si vous l'avez exécuté à un moment donné et qu'il cesse de coopérer après un redémarrage:
unset DOCKER_Host
unset DOCKER_TLS_VERIFY
unset DOCKER_TLS_PATH
docker ps
J'avais déjà installé un menu fixe et après le redémarrage de mon ordinateur portable, celui-ci a tout simplement refusé de fonctionner. A été correctement ajouté au groupe d'utilisateurs de docker, avait les autorisations appropriées sur le socket, etc., mais ne pouvait toujours pas exécuter docker login
, docker run ...
, etc. Cela a résolu le problème pour moi. Malheureusement, je dois l'exécuter à chaque redémarrage. Ceci est également mentionné sur quelques problèmes de github / comme solution de contournement, bien que cela puisse sembler être un obstacle qu’il s’agisse d’un obstacle permanent au bon fonctionnement de Docker le même problème pour moi).
Testé sous Ubuntu 16.04
# Create the docker group and add your user to the docker group
groupadd docker
usermod -aG docker $USER
newgrp docker
# Configure docker service to be exposed
mkdir -p /etc/systemd/system/docker.service.d
echo -e '[Service]\nExecStart=\nExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2376' >> /etc/systemd/system/docker.service.d/override.conf
# restart service
systemctl daemon-reload
service docker restart
Pour Ubuntu 16.04
Dans le fichier /lib/systemd/system/docker.service
change:
ExecStart=/usr/bin/dockerd fd://
avec:
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375
Dans le fichier /etc/init.d/docker
change:
DOCKER_OPTS=
avec:
DOCKER_OPTS="-H tcp://0.0.0.0:2375"
puis redémarrez votre ordinateur.