Docker ne peut pas se connecter au démon Docker

473

Après avoir mis à jour ma version Docker vers 0.8.0, je reçois un message d'erreur lors de la saisie 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 obtenu 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?

LiJung
la source
7
Avez-vous utilisé sudo lors de l'exécution de docker -d?
Ben Whaley
Je remarque que dans l'erreur, il est dit no such file or directory[/var/lib/docker|2462000b]. /var/lib/dockerExiste- t- il sur votre système? Sinon, je pense que vous devez réinstaller Docker.
Ben Whaley
3
J'ai le même problème (je ne peux pas me connecter à un démon que 'ps' montre toujours en cours d'exécution), sauf que je ne reçois aucun message 'fichier introuvable' lors du démarrage du démon. / var / lib / docker existe.
Jonathan Hartley
Utilisez-vous Docker sur un VPS?
pigletfly
Installez Docker Desktop à partir d'ici, cela le résoudra. docs.docker.com/docker-for-mac/install
Guy Assaf

Réponses:

642

Linux

Les étapes de post-installation pour la documentation Linux révèlent les étapes suivantes:

  1. Créez le groupe de dockers .
    sudo groupadd docker
  2. Ajoutez l'utilisateur au groupe de dockers .
    sudo usermod -aG docker $ (whoami)
  3. Déconnectez-vous et reconnectez-vous pour vous assurer que le docker s'exécute avec les autorisations appropriées.
  4. Démarrez Docker.
    sudo service docker start

Mac OS X

Comme Dayel Ostraco le dit, 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 docker-machine startcommande génère les commentaires pour guider le processus.

molavec
la source
Oui. C'était le problème pour moi. J'ai ajouté mon utilisateur au groupe docker et maintenant je peux me connecter au démon. Merci
Bogdan
FWIW, le lien vers la section spécifique est présente
asymétrique
20
Si, pour une raison quelconque, vous ne souhaitez pas vous déconnecter, vous pouvez utiliser la newgrpcommande pour démarrer un nouveau shell dans ce nouveau groupe. Comme ceci: newgrp docker.
Denilson Sá Maia
sudo chown $ USER: $ USER / chemin / vers / docker / binaire
Ivor Scott
Je n'ai pas eu le temps de redémarrer bash. L' alias docker='sudo docker'astuce aussi. : p
LovaBill
150

Linux

Pour exécuter le démon docker sous Linux (à partir de CLI ), exécutez:

$ sudo service docker start # Ubuntu/Debian

Remarque: sautez le $caractère lorsque vous copiez et collez.

Sur RedHat / CentOS, exécutez: sudo systemctl start docker.

Pour initialiser le système de fichiers "de base", exécutez:

$ sudo service docker stop
$ sudo rm -rf /var/lib/docker
$ sudo service docker start

ou manuellement comme:

$ sudo docker -d --storage-opt dm.basesize=20G

Installer docker-machinesous Linux

Pour installer des binaires machine sous Linux:

  • localement:

    install -vm755 <(curl -L https://github.com/docker/machine/releases/download/v0.5.3/docker-machine_linux-amd64) $HOME/bin/docker-machine
    
  • global:

    sudo bash -c 'install -vm755 <(curl -L https://github.com/docker/machine/releases/download/v0.5.3/docker-machine_linux-amd64) /usr/local/bin/docker-machine'
    

macOS

Sur macOS, le dockerbinaire n'est qu'un client et vous ne pouvez pas l'utiliser pour exécuter le démon docker, car le démon Docker utilise des fonctionnalités de noyau spécifiques à Linux, vous ne pouvez donc pas exécuter Docker en mode natif sous OS X. Vous devez donc installerdocker-machine pour créer VM et attachez-y.

Installer docker-machinesur macOS

Si vous n'avez pas docker-machineencore de commande, installez-la en utilisant l'une des méthodes suivantes:

  • En utilisant Brew commande: brew install docker-machine docker.
  • manuellement depuis GitHub :

    install -v <(curl https://github.com/docker/machine/releases/download/v0.5.3/docker-machine_linux-amd64) /usr/local/bin/docker-machine
    

Voir: Premiers pas avec Docker pour Mac .

Configurer docker-machinesur macOS

Pour démarrer Docker Machine via Homebrew, exécutez:

brew services start docker-machine

Pour créer une defaultmachine (si vous n'en avez pas, voir:) docker-machine ls:

docker-machine create --driver virtualbox default

Ensuite, configurez l'environnement pour le client Docker:

eval "$(docker-machine env default)"

Ensuite, revérifiez en listant les conteneurs:

docker ps

Voir: Premiers pas avec Docker Machine et une machine virtuelle locale .


Installez Docker.app sur macOS

Alternativement à la solution ci-dessus, vous pouvez installer une application Docker en:

brew cask install docker

Consultez cet article pour plus de détails . Voir aussi: Impossible de se connecter au démon Docker sur macOS

kenorb
la source
1
sudo service docker start fonctionne avec Docker 1.9.1 sur Ubuntu 14.04
Merci. c'est ce qui a fonctionné pour moi sur Ubuntu 14.04. tout le reste a échoué.
nyxee
C'est la seule chose qui a fonctionné pour moi sur Mac OSX avec du matériel plus ancien que 2010. J'ai dû installer à docker-toolboxpartir de docs.docker.com/toolbox/toolbox_install_mac
Vikram
2
J'avais besoin d'installer docker-compose, docker-machine et docker via Homebrew alors cela a bien fonctionné!
Entalpi
J'ai eu ce problème sur CentOS 7.6 avec docker 18 sudo rm -rf /var/lib/docker, puis le redémarrage a fait l'affaire. J'étais vraiment coincé et aucune autre solution n'a fonctionné pour moi.
Ashkan
142

Si vous exécutez Docker sur OS X, l'exécution de 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 à chaque session de terminal, vous pouvez l'ajouter à votre bash_profile:

#Docker
eval "$(docker-machine env default)"

Veillez à redémarrer la session de terminal ou à exécuter la source sur bash_profilepour que les modifications prennent effet.

Dayel Ostraco
la source
3
Même chose ici, si j'essaie seul, j'ai souvent Error checking TLS connection: Host is not running... exécutant cet eval après que la commande a docker-machine start defaultfait l'affaire.
Emilio Ferrucci
100

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 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 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) Comme pour (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)"

Dans le cas où 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 réexécuter les trois commandes une autre fois, et cela devrait fonctionner la deuxième fois.

KAD
la source
6
Je reçois l'hôte n'existe pas: "par défaut"
Roman Gaufman
@RomanGaufman: est-ce que cela fonctionne pour vous: docker-machine start default?
KAD
1
@RomanGaufman J'ai dû redémarrer mon terminal avant que la commande ne s'exécute avec succès.
anon58192932
est-ce parce que l'ip de la boîte virtuelle vm change à chaque redémarrage de votre mac?
Cui Pengfei
L'erreur de @ RomanGaufman est résolue par la réponse (actuellement) ci-dessous: stackoverflow.com/a/34887761/634576
Dave Schweisguth
47

Cela se produit généralement lorsque vous n'êtes pas dans le dockergroupe. Vous pouvez vous ajouter au dockergroupe 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.

Alternativement, vous pouvez sudochaque commande Docker.

nPcomp
la source
5
et si le groupe n'existe pas: sudo groupadd docker
izy
30

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

kevthanewversi
la source
1
J'ai commencé avec cette réponse, et cela m'a aidé!
Andrzej Martyna
2
Le problème avec cette approche est que, vous devez répéter cette étape à chaque redémarrage du démon
MFIhsan
Salut @MFIhsan, un administrateur système intelligent vous dirait de simplement créer un script bash de ces commandes et de l'ajouter à crontab pour qu'il s'exécute au redémarrage / démarrage comme expliqué ici> stackoverflow.com/a/29247942/3469960
kevthanewversi
Un utilisateur ordinaire ne devrait jamais posséder de chaussette! Si vous ne possédez pas la chaussette, assurez-vous que vous êtes dans le groupe de roues et le groupe auquel la chaussette appartient ... pas le groupe des propriétaires de chaussettes!
CrazyMerlin
16

La meilleure façon de savoir pourquoi Docker ne fonctionne pas sera d'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 se connecte à STDOUT, il commencera donc à cracher quoi qu'il fasse.

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 a été clonée à partir d'une autre machine virtuelle. J'ai juste dû supprimer le pidfile, et tout a fonctionné par la suite.

Bien sûr, au lieu de supposer aveuglément que cela fonctionnera, je suggère d'exécuter le démon manuellement une fois de plus et d'examiner la sortie du journal pour toute autre erreur avant de démarrer la sauvegarde du service.

Robert Elwell
la source
1
C'est aussi ce qui m'a aidé à trouver le problème (j'ai malheureusement vu votre réponse après). Le mien était le apparmorcolis manquant .
Pierre de LESPINAY
Cette solution a fonctionné pour moi. Après avoir supprimé /var/run/docker.pid, j'ai finalement pu démarrer le docker.
jirikadlec2
3
Avertissement: '-d' est obsolète, il sera bientôt supprimé. Voir utilisation. WARN [0000] veuillez utiliser à la place le 'démon docker'.
juanmf
3
indicateur fourni mais non défini: -d
Luís de Sousa
Pour exécuter le démon docker manuellement dans les dernières versions avec le débogage activé, utilisez:dockerd -D
Luis Miguel Serrano
14

Si vous recevez le message Can't connect to docker daemon. Is 'docker -d' running on this host?, vous pouvez le vérifier endocker version .

Si vous voyez des informations comme Docker Client est en cours d'exécution. mais Docker Server n'est pas , il est évident que vous devez démarrer le serveur Docker.

Dans CentOS, vous pouvez utiliser servicepour 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 Docker Client et Docker Server , et le démon Docker a été démarré.

Shawn Wang
la source
2
sudo service docker starta également travaillé pour moi sur Ubuntu 14.04.
funroll le
Cent os 7, je dois le faire à chaque fois que je démarre Docker.
Paddy du
@Paddy Vous devez activer le service après l'avoir déclaré, et il s'exécutera si le système est démarré et continuera de fonctionner en arrière-plan.
CrazyMerlin
Toutes ces réponses qui disent: "Vous devez sudo systemctl start docker" supposent toujours qu'il existe un service docker pour démarrer. S'il y a eu des problèmes d'installation de docker, un fichier de configuration de service peut même ne pas exister, auquel cas vous obtiendrez: "Unit docker.service non chargé"
CrazyMerlin
12

Faites un ps aux | grep dockerpour voir si le démon est en cours d'exécution. Si pas exécuté/etc/init.d/docker start

Reza S
la source
5
J'ai le même problème. 'ps' montre que mon processus de docker est toujours en cours d'exécution.
Jonathan Hartley
arrêter et démarrer docker (qui était déjà en cours d'exécution) m'a redressé.
kyle
14
sudo service docker startme dit "docker start / running, process 4633" puis sudo service docker statusdit "docker stop / attente"
Pierre de LESPINAY
12

Je redémarre Docker après l'avoir installé:

$ sudo service docker stop
$ sudo service docker start

Et il fonctionne.

Galère
la source
9

J'ai un problème similaire. J'ai dû me déconnecter et me reconnecter au shell car je viens d'installer Docker et la commande suivante ne s'affichait pas dans mon environnement.

export DOCKER_HOST=127.0.0.1:4243 >> ~/.bashrc
kayn
la source
3
Je devais juste me déconnecter et me reconnecter. Tout est réparé!
Mark Shust à M.academy
Cela a résolu mon problème! J'utilise Ubuntu 16.04 en WSL. La seule chose que j'ai dû changer était le numéro de port par défaut: export DOCKER_HOST = 127.0.0.1: 2375 >> ~ / .bashrc
Alex
9

J'ai rencontré ce problème et j'ai redémarré Docker à l'aide de ces commandes:

$ 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 rencontrent ce problème, essayez de vérifier cela.

Essayer

$ sudo docker info

au lieu de cela:

$ docker info
Taha Emara
la source
C'était exactement mon problème lorsque j'essayais de fonctionner docker buildsur Ubuntu Xenial.
ashnazg
9

Vous pouvez utiliser la commande

sudo service docker stop && sudo service docker start

pour le démarrer simplement.

kvadityaaz
la source
3
Ou sudo service docker restart, c'est plus facile 😊
fr1sk
8

J'ai la même erreur et j'essaye docker-machine regenerate-certsoueval.. je n'ai pas travaillé pour moi.

Ceci sur OS X 10.11.3 (El Capitan) et Docker v1.10.1. Je n'ai pu le réparer qu'en supprimant et en recréant à nouveau docker-machine. La source

S'il est en cours d'exécution docker-machine ls, il vous montre une sortie similaire à celle ci-dessous;

DOCKER

Inconnue

LES ERREURS

Impossible d'interroger la version du docker: impossible de se connecter au point de terminaison du moteur du docker

Essayez de supprimer votre machine Docker avec;

docker-machine rm -f default

defaultest le nom de votre machine Docker. Alors;

docker-machine create -d virtualbox default

Crée une nouvelle machine Docker.

Vérifiez que tout semble normal maintenant (pas d'erreurs ou Docker inconnu) avec:

docker-machine ls

Enfin n'oubliez pas d'exécuter "$(docker-machine env default)"avant de continuer ou d'exécuter le Docker Quickstart Terminal qui le fait pour vous ...

Kerem
la source
6

J'ai eu le même problème - "Impossible de se connecter au démon Docker." (sauf que je n'ai reçu aucune erreur «fichier introuvable» lors de la tentative de démarrage du 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é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

J'ai donc réalisé tardivement que l'installation de docker avait peut-être enregistré le démon avec upstart, qui l'avait lancé pour moi. Par conséquent, essayer de tuer le démon pour le redémarrer manuellement échoue (opération non autorisée). J'ai donc fait un

sudo kill -9 <PID>

sur le processus 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
Jonathan Hartley
la source
6

Essayez d'ajouter l'utilisateur actuel au dockergroupe:

sudo usermod -aG docker $USER

Déconnectez-vous ensuite et connectez-vous.

dormi330
la source
6

Utiliser l' application Docker CE

macOS

Utilisez la nouvelle application Docker Community Edition pour macOS. Par exemple:

  1. Désinstallez tous les packages Docker Homebrew que vous avez installés jusqu'à présent:

    brew uninstall docker-compose
    brew uninstall docker-machine
    brew uninstall docker
    
  2. Installez une application manuellement ou via Homebrew-Cask :

    brew cask install docker
    

    Note: Cette application va créer des liens nécessaires docker, docker-compose, docker-machine, etc.

  3. Après avoir exécuté l'application, vérifiez l'icône d'une baleine Docker dans le menu d'état.

  4. Maintenant , vous devriez être en mesure d'utiliser docker, docker-compose, docker-machinecommandes , comme d' habitude dans le Terminal .

En relation:

Linux / Windows

Téléchargez Docker CE depuis la page de téléchargement et suivez les instructions.

kenorb
la source
2018-5-20 note: l'application Docker CE sur macOS est assez merdique. chaque fois que je l'ouvre, il gèle juste comme il faut, je ne peux rien faire. J'ai essayé de Google et de résoudre le problème, jusqu'à présent, je travaille toujours dessus
NamNamNam
1
Ceci est la bonne réponse pour le problème signalé, merci!
paranza
6

Je savais qu'il y avait déjà beaucoup de réponses dans ce post. J'aimerais simplement 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 cela démarrera tous les threads / services liés au docker.

Prakasam Dhamodhiran
la source
5

Je viens d'avoir le même problème, en cours d'exécution sur Amazon AWS .

Voici ce que j'ai tenté:

  • Configurer docker-machinelocalement avec une instance AWS déjà existante
  • Configuration générique utilisée
  • Il était en quelque sorte connecté, mais comme le port distant était fermé, il a échoué
  • Après cela, le démon Docker a refusé de démarrer, mais l'exécution dockerda fonctionné ...

Il a été testé sur la machine distante suivante:

service docker start # Also restart, no success
systemctl start docker # Also restart, no success
dockerd # Success

J'ai tout supprimé /var/lib/dockeret désinstallé, mais il n'y a pas eu de succès après la réinstallation. Malheureusement, je n'ai aucun journal stocké suite à des échecs, mais j'ai docker.servicesimplement refusé de démarrer.

Cependant, ce qui a finalement résolu mon problème était essentiellement:

sudo usermod -aG docker $(whoami)
Deko
la source
4

Suivre le site DOC de Docker: Gérer Docker en tant qu'utilisateur non root

1) Créer un groupe Docker

sudo groupadd docker 

2) Faites en sorte que l'utilisateur appartienne au groupe 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

Ensuite, cela devrait fonctionner:

docker run hello-world
blasrodri
la source
1
vous êtes un épargnant de vie a unset DOCKER_HOSTfonctionné pour moi
user3014595
4

Si vous exécutez sous OS X à l'aide de l'outil Docker, procédez comme suit.

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 -aou docker-machine ls. Cela répertoriera tous les conteneurs.

Ermias K
la source
2

J'ai le même problème. Dans CentOS 6.5:

ps aux |grep `cat /var/run/docker.pid`

S'il ne montre aucun processus de démon Docker, alors je tape:

docker -d

Puis Ctrl+ Dpour arrêter Docker. Parce que nous utilisons l' -doption, Docker s'exécutera 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 les ai yum installprécédés.

wuranbo
la source
2

Le service Docker n'est peut-être pas en cours d'exécution.

Si vous utilisez un RedHat / Fedora / CentOS, veuillez essayer ceci:

sudo systemctl start docker

Si vous êtes sur Ubuntu / Debian:

sudo service start docker

Docker commencera à s'exécuter sur votre hôte et son port respectif.

Aamir M Meman
la source
1

Vérifiez si vous utilisez Docker Machine :)

La course docker-machine env defaultdevrait faire l'affaire.

Parce que selon la documentation:

Docker Machine est un outil qui vous permet d'installer Docker Engine sur des hôtes virtuels et de gérer les hôtes avec des docker-machinecommandes. Vous pouvez utiliser Machine pour créer des hôtes Docker sur votre Mac local ou Windows Box, sur le réseau de votre entreprise, dans votre centre de données ou sur des fournisseurs de cloud comme AWS ou Digital Ocean.

À l'aide de docker-machinecommandes, vous pouvez démarrer, inspecter, arrêter et redémarrer un hôte géré, mettre à niveau le client et le démon Docker et configurer un client Docker pour parler à votre hôte.

Pointez la machine CLI sur un hôte géré en cours d'exécution et vous pouvez exécuter des dockercommandes directement sur cet hôte. Par exemple, exécutez docker-machine env defaultpour pointer vers un hôte appelé default, suivez les instructions à l'écran pour terminer la envconfiguration, exécutez `` docker ps, docker run hello-worldetc.

https://docs.docker.com/machine/overview/

Bob
la source
1
  1. J'ai également eu le même problème. Le problème était dans les sockets allouées à docker-daemon et docker-client.
  2. Tout d'abord, l'autorisation n'a pas été définie pour le client docker sur docker.sock Vous pouvez le définir à l'aide de "sudo usermod -aG docker $ USER"
  3. Ensuite, vérifiez votre fichier bash où le client docker est en cours d'exécution, pour moi, il était sur 0.0.0.0:2375, alors que le démon docker fonctionnait sur un socket Unix (il a été défini dans le fichier de configuration de dockerd).
  4. Il suffit de commenter la ligne bash et cela fonctionnera bien.
  5. Mais si vous voulez le faire fonctionner sur le port TCP au lieu du socket Unix, changez le fichier de configuration de dockerd et définissez-le sur 0.0.0.0.2375 et gardez la ligne en bash telle qu'elle est si présente ou définissez-la sur 0.0.0.0: 2375.
Nilesh Kande
la source
1

Pour résoudre ce problème, vous devez émettre les commandes suivantes dans le terminal. Je vais vous 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 plus de temps, vous pouvez exécuter mon initscript 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 fonctionne correctement.

Daniel Andrei Mincă
la source
1

J'ai eu le même problème lors de l'exécution de Docker 1.10 sur Ubuntu 14.04 et aucune des réponses fournies n'a fonctionné. 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
Yatit Thakker
la source
1

Si vous utilisez gitlab-ci / gitlab-runners, vous obtenez cette erreur si vous n'avez pas les autorisations d'accès /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.

Tobias Ernst
la source
0

Si la régénération des certificats TLS ne fonctionne pas

docker-machine regenerate-certs default

Essayez de redémarrer la machine docker 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 vous ne disposez toujours pas du démon, la page de dépannage de Docker détaille un processus pour arrêter, supprimer et créer une nouvelle machine.

nikheel
la source
0

J'ai également rencontré le problème "Impossible de se connecter au démon Docker. Le démon Docker fonctionne-t-il 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
Habeeb Perwad
la source