Après avoir mis à jour ma version de Docker vers 0.8.0
, un message d'erreur apparaît lorsque je saisis Sudo docker version
:
Client version: 0.8.0
Go version (client): go1.2
Git commit (client): cc3a8c8
2014/02/19 12:54:16 Can't connect to docker daemon. Is 'docker -d' running on this host?
Et j'ai suivi les instructions et entré la commande Sudo docker -d
, et j'ai eu ceci:
[/var/lib/docker|2462000b] +job initserver()
[/var/lib/docker|2462000b.initserver()] Creating server
open /var/lib/docker/aufs/layers/cf2414da53f9bcfaa48bc3d58360d7f1cfd3784e4fe51fbef95197709dfc285d: no such file or directory[/var/lib/docker|2462000b] -job initserver() = ERR (1)
2014/02/19 12:55:57 initserver: open /var/lib/docker/aufs/layers/cf2414da53f9bcfaa48bc3d58360d7f1cfd3784e4fe51fbef95197709dfc285d: no such file or directory
Comment résoudre le problème?
Les étapes de post-installation pour Linux documentation révèlent les étapes suivantes:
Sudo groupadd docker
Sudo usermod -aG docker $ (whoami)
Sudo docker service
Comme Dayel Ostraco dit qu’il est nécessaire d’ajouter des variables d’environnement:
docker-machine start # Start virtual machine for docker
docker-machine env # It's helps to get environment variables
eval "$(docker-machine env default)" # Set environment variables
La commande docker-machine start
génère les commentaires pour guider le processus.
Si vous utilisez Docker sous OS X, l’évaluation suivante a fonctionné pour moi.
eval "$(docker-machine env default)"
Si vous préférez ne pas avoir à exécuter cette instruction eval sur chaque session de terminal, vous pouvez ajouter ceci à votre bash_profile
:
#Docker
eval "$(docker-machine env default)"
Assurez-vous de redémarrer la session de terminal ou d'exécuter la source sur bash_profile
pour que les modifications prennent effet.
Après une enquête détaillée, ce problème semble se produire chaque fois après le redémarrage de Mac OS X (ou le redémarrage de la machine virtuelle Docker), ce qui empêche le client Docker de se connecter au démon Docker.
Pour résoudre le problème, vous pouvez soit:
A) Réinstallez Docker Toolbox à l’aide du programme d’installation officiel ( https://www.docker.com/products/docker-toolbox ), ou tout simplement
B) Exécutez les commandes suivantes dans l'ordre:
# First make sure that the virtual machine is running
docker-machine start default
# Regenerate TLS connection certs, requires confirmation
docker-machine regenerate-certs default
# Finally, set env
eval "$(docker-machine env default)"
C) Identique à (B), vous pouvez également copier et coller la ligne suivante pour exécuter les trois commandes:
docker-machine start default; docker-machine regenerate-certs default; eval "$(docker-machine env default)"
Si vous obtenez l'erreur suivante:
Error getting SSH command: Something went wrong running an SSH command!
command : cat /etc/os-release
err : exit status 255
output :
il suffit de relancer les trois commandes une autre fois, et cela devrait fonctionner la deuxième fois.
Cela se produit généralement lorsque vous ne faites pas partie du groupe docker
. Vous pouvez vous ajouter au groupe docker
avec:
Sudo usermod -aG docker yourusername
ou
Sudo usermod -aG docker $(whoami)
Après cela, vous devez vous déconnecter et vous reconnecter au serveur.
Sinon, vous pouvez Sudo
chaque commande de Docker.
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
Le meilleur moyen de savoir pourquoi Docker ne fonctionne pas consiste à exécuter le démon manuellement.
$ Sudo service docker stop
$ ps aux | grep docker # do this until you don't see /usr/bin/docker -d
$ /usr/bin/docker -d
Le démon Docker enregistre dans STDOUT pour qu'il commence à cracher tout ce qu'il fait.
Voici quel était mon problème:
[8bf47e42.initserver()] Creating pidfile
2015/01/11 15:20:33 pid file found, ensure docker is not running or delete /var/run/docker.pid
En effet, l'instance avait été clonée à partir d'une autre machine virtuelle. Je devais juste enlever le pidfile, et tout a fonctionné après.
Bien sûr, au lieu de supposer à l'aveuglette que cela fonctionnerait, je suggérerais d'exécuter le démon manuellement une fois de plus et d'examiner la sortie du journal à la recherche d'éventuelles autres erreurs avant de démarrer la sauvegarde du service.
Si vous recevez le message Can't connect to docker daemon. Is 'docker -d' running on this host?
, vous pouvez le vérifier par docker version
.
Si vous voyez des informations telles que le client Docker est en cours d'exécution. mais Docker Server n’est pas , c’est évidemment que vous devez démarrer le serveur Docker.
Dans CentOS, vous pouvez utiliser service
pour démarrer ou arrêter le serveur Docker.
$ Sudo service docker stop
$ Sudo service docker start
Ensuite, après avoir tapé docker version
, vous obtiendrez les informations de Client Docker et Docker Server , et le démon Docker aura été lancé.
Je redémarre Docker après l'avoir installé:
$ Sudo service docker stop
$ Sudo service docker start
Et il fonctionne.
Faites un ps aux | grep docker
pour voir si le démon est en cours d'exécution. Si non exécuté /etc/init.d/docker start
J'ai rencontré ce problème et j'ai redémarré Docker à l'aide des commandes suivantes:
$ Sudo service docker stop
$ Sudo service docker start
Mais je n’ai pas résolu mon problème car j’ai oublié d’exécuter mes commandes Docker sans Sudo
. Pour ceux qui sont confrontés à ce problème, essayez de vérifier cela.
Essayer
$ Sudo docker info
au lieu de cela:
$ docker info
J'ai le même problème. J'ai dû me déconnecter et me reconnecter à Shell car je viens d'installer Docker et la commande suivante ne s'affiche pas dans mon environnement.
export DOCKER_Host=127.0.0.1:4243 >> ~/.bashrc
J'ai la même erreur et essayer docker-machine regenerate-certs
ou eval..
n'a pas fonctionné pour moi.
Ceci sous OS X 10.11.3 (El Capitan) et Docker v1.10.1. Je n'ai pu résoudre le problème qu'en supprimant et en recréant à nouveau docker-machine. La source
Si vous exécutez docker-machine ls
, il affiche une sortie similaire à celle ci-dessous;
DOCKER
Inconnu
LES ERREURS
Impossible d’interroger la version du menu fixe: impossible se connecter au noeud final du moteur docker
Essayez de retirer votre machine Docker avec;
docker-machine rm -f default
Où default
est le nom de votre ordinateur Docker. Ensuite;
docker-machine create -d virtualbox default
Crée une nouvelle machine Docker.
Vérifiez à nouveau que tout a l'air normal maintenant (pas d'erreurs ou de Docker inconnu) avec:
docker-machine ls
Enfin, n'oubliez pas de lancer "$(docker-machine env default)"
avant de continuer ou de lancer le terminal Docker Quickstart qui le fait pour vous ...
Essayez d'ajouter l'utilisateur actuel au groupe docker
:
Sudo usermod -aG docker $USER
Puis déconnectez-vous et connectez-vous.
J'ai eu le même problème - "Impossible de se connecter au démon docker." (sauf que je n'ai pas eu d'erreurs 'fichier non trouvé' en essayant de démarrer le serveur.)
"ps" a montré que "/ usr/bin/docker -d" était toujours en cours d'exécution
J'ai réalisé que je n'avais jamais réellement réussi à faire fonctionner le serveur moi-même. Chaque tentative avait produit
...
2014/03/24 21:57:29 pid file found, ensure docker is not running or delete /var/run/docker.pid
Donc, j'ai réalisé tardivement que l'installation de docker avait peut-être enregistré le démon avec upstart, ce qui l'avait démarré pour moi. Par conséquent, essayer de tuer le démon pour le redémarrer manuellement échoue (opération non autorisée). Alors j'ai fait un
Sudo kill -9 <PID>
sur le processus de démon. Un autre démon a immédiatement pris sa place, et ce nouveau laisse maintenant mon client CLI se connecter:
$ Sudo docker info
Containers: 0
Images: 0
Driver: aufs
Root Dir: /var/lib/docker/aufs
Dirs: 0
WARNING: No memory limit support
WARNING: No swap limit support
Je viens d'avoir le même problème, fonctionnant sur Amazon AWS .
Voici ce que j'ai essayé:
docker-machine
localement avec une instance AWS déjà existantedockerd
a fonctionné ...Il a été testé en suivant sur la machine distante:
service docker start # Also restart, no success
systemctl start docker # Also restart, no success
dockerd # Success
J'ai supprimé /var/lib/docker
et tout désinstallé, mais la réinstallation a échoué. Malheureusement, je n'ai pas de journaux stockés sur des échecs, mais docker.service
a simplement refusé de démarrer.
Cependant, ce qui a finalement résolu mon problème était fondamentalement:
Sudo usermod -aG docker $(whoami)
Si vous utilisez OS X avec l’outil Docker, suivez ceci.
Redémarrez le démon et configurez votre environnement:
docker-machine restart
Et alors
docker-machine env
Finalement,
eval $(docker-machine env)
Pour tester le démon en cours d'exécution:
docker ps -a
ou docker-machine ls
. Cela listera tous les conteneurs.
Je savais qu'il y avait déjà beaucoup de réponses dans ce post. Je voudrais juste ajouter une réponse simple qui résout le problème mentionné ci-dessus.
Sudo systemctl start docker
Exécutez la commande ci-dessus et tous les services/threads liés au menu fixe seront démarrés.
Après le site DOC de Docker: Gérer Docker en tant qu'utilisateur non root
1) Créer un groupe de dockers
Sudo groupadd docker
2) Faites en sorte que l'utilisateur appartienne au groupe de docker pour obtenir les privilèges du groupe.
Sudo usermod -aG docker $USER
Vérifiez si la variable d'environnement DOCKER_Host est définie pour votre shell.
env | grep DOCKER_Host
S'il existe,
unset DOCKER_Host
Alors cela devrait fonctionner:
docker run hello-world
Utilisez la nouvelle application Docker Community Edition pour macOS. Par exemple:
Désinstallez tous les packages Docker Homebrew déjà installés:
brew uninstall docker-compose
brew uninstall docker-machine
brew uninstall docker
Installez une application manuellement ou via Homebrew-Cask :
brew cask install docker
Remarque: Cette application créera les liens nécessaires vers docker
, docker-compose
, docker-machine
, etc.
Après avoir exécuté l'application, consultez l'icône a Docker Whale dans le menu d'état.
docker
, docker-compose
, docker-machine
comme d'habitude dans Terminal.En relation:
Téléchargez le Docker CE à partir de la page de téléchargement et suivez les instructions.
J'ai le même problème. En CentOS 6.5:
ps aux |grep `cat /var/run/docker.pid`
Si aucun processus démon Docker n’existe, je tape:
docker -d
Ensuite Ctrl + D arrêter Docker. Comme nous utilisons l'option -d
, Docker sera exécuté en tant que démon. Maintenant nous pouvons faire:
service docker start
Ensuite, je peux faire un docker pull centos
. C'est tout.
REMARQUE: Si ceux-ci ne fonctionnent pas, vous pouvez essayer yum update
, puis les répéter à nouveau, car je yum install
avant ceux-ci.
Pour résoudre ce problème, vous devez exécuter les commandes suivantes dans le terminal. Je vais expliquer chaque étape:
# Uninstall Docker from apt packages
$ Sudo apt-get remove docker docker.io
# Remove it from the libraries just to be
# sure it's gone forever
$ Sudo rm -rf /var/lib/docker/*
Maintenant, si vous voulez simplifier les choses et gagner du temps, vous pouvez exécuter mon script init
avec le paramètre installDocker
:
# Pull the init script from GitHub
$ wget https://github.com/dminca/dotfiles/blob/master/init
# Add rights to run the script
$ chmod 755 init
# Just run the script with the installDocker parameter
$ ./init installDocker
Un redémarrage est facultatif, mais je vous suggère de le faire pour vous assurer que tout se passe bien.
Le Docker Service peut ne pas être en cours d'exécution.
Si vous utilisez un RedHat/Fedora/CentOS, essayez ceci:
Sudo systemctl start docker
Si vous êtes sur Ubuntu/Debian:
Sudo service start docker
Docker commencera à fonctionner sur votre hôte et votre port respectif.
J'ai eu le même problème avec Docker 1.10 sous Ubuntu 14.04 et aucune des réponses données ne fonctionnait Pour moi, le correctif consistait à spécifier le pilote de stockage lors de l'exécution du démon Docker.
Sudo docker daemon --storage-driver=devicemapper
Vérifiez si vous utilisez Docker Machine :)
Exécuter docker-machine env default
devrait faire l'affaire.
Parce que selon la documentation:
Docker Machine est un outil qui vous permet d'installer Docker Engine sur hôtes virtuels et gérer les hôtes avec les commandes
docker-machine
. Vous pouvez utiliser Machine pour créer des hôtes Docker sur votre Mac ou Windows local Box, sur le réseau de votre entreprise, dans votre centre de données ou sur le cloud des fournisseurs comme AWS ou Digital Ocean.À l'aide des commandes
docker-machine
, vous pouvez démarrer, inspecter, arrêter et redémarrez un hôte géré, mettez à niveau le client et le démon Docker, et configurer un client Docker pour parler à votre hôte.Dirigez la CLI de la machine vers un hôte géré en cours d'exécution et vous pouvez exécuter
docker
commande directement sur cet hôte. Par exemple, exécutezdocker-machine env default
pour pointer sur un hôte appelédefault
, suivez les instructions à l'écran instructions pour terminer la configurationenv
et exécuterdocker ps
,docker run hello-world
et ainsi de suite.
Vous pouvez utiliser la commande
Sudo service docker stop
Sudo service docker start
simplement le démarrer.
J'ai également eu le problème "Impossible de se connecter au démon Docker. Le démon docker est-il exécuté sur cet hôte?".
J'avais oublié d'utiliser Sudo
. J'espère que cela aidera certains d'entre nous.
$:docker images
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
$:Sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
Ok, j'ai donc commencé à avoir ce problème aujourd'hui. Ensuite, j'ai vu beaucoup de réponses mais aucune ne semble avoir fonctionné pour moi. D'abord, la plupart des instructions étaient dirigées vers Linux. Et pour la version mac, ils parlaient tous de lancer «docker-machine». Je suppose que vous utilisez docker-machine si vous installez docker toolbox, car docker sera exécuté sur une machine virtuelle pour les plates-formes Windows et Mac. Mais son 2017 maintenant et docker pour mac est vraiment stable donc pas besoin d'utiliser la boîte à outils.
Vous ne savez pas comment le démon s'est arrêté. Mais pour le redémarrer, tout ce que je devais faire était d'aller dans "Applications" et double-cliquer sur l'icône du menu fixe. On m'a demandé de mettre à jour et relancé que j'ai accepté. Après cela, tout a fonctionné comme un charme.
Essayez de modifier le fichier de configuration de Docker, docker
ou docker-network
dans /etc/sysconfig
:
(... ~ v1.17)
docker
:OPTIONS= -H fd://
ou (v1.18):
docker-network
fichier:DOCKER_NETWORK_OPTIONS= -H unix:///var/run/docker.sock
Si la régénération de certificats TLS ne fonctionne pas
docker-machine regenerate-certs default
Essayez de redémarrer l’ordinateur de base et de définir la variable env:
docker-machine restart default
eval $(docker-machine env default)
Vérifiez si la machine fonctionne avec:
docker-machine ls
ou bien
docker run hello-world
Cela a fonctionné pour moi. Cependant, si le démon n'est toujours pas activé, La page de dépannage de Docker détaille un processus d'arrêt, de suppression et de création d'un nouvel ordinateur.
J'ai eu un problème similaire.
Dans mon cas, la solution consistait à supprimer une version obsolète de docker. Je suppose que cela a provoqué des conflits.
Sur Ubuntu:
Sudo apt remove docker
résolu le problème pour moi
vous pouvez exécuter le démon avec la commande suivante:
Sudo Nohup docker daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock &
Le script laisse le démon actif en arrière-plan et, lorsque Docker est prêt, vous pouvez vérifier qu'il accepte les commandes.
Sudo docker info
pour plus d'informations, consultez ceci: https://www.upcloud.com/support/how-to-configure-docker-swarm/
Je suis surpris que personne n'ait déjà répondu à cela:
Sudo docker network create persistence_backend
Faites ceci si vos deux dockers en cours d’exécution et docker
Avez-vous essayé de l'éteindre et rallumer? :-)
J'ai eu le même problème après la mise à niveau vers Docker 1.10.1 sur mon Mac .
Sur le terminal Docker Quickstart
$ exit
$ exit
puis
tuer docker-machine par défaut
puis redémarré Docker Quickstart Terminal
Cela a résolu mon problème.
Sur Mac OS-X, cela pourrait simplement signifier que l’installation de docker est obsolète ou ne fonctionne pas. Téléchargez simplement le dernier menu fixe à partir du site officiel et installez-le.
Travaillé pour moi.
Si vous utilisez gitlab-ci/gitlab-runners, vous obtenez cette erreur si vous ne disposez pas des autorisations nécessaires pour accéder à /var/run/docker.sock
.
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock
Résoudre le problème:
Sudo usermod -aG docker gitlab-runner
Vérifiez avec:
Sudo -u gitlab-runner -H docker info
J'espère que cela pourra aider.