Impossible de se connecter au démon Docker sous unix: /var/run/docker.sock. Le démon docker est-il en cours d'exécution?

174

J'ai appliqué toutes les solutions disponibles sur Internet mais je ne peux toujours pas exécuter Docker.

Je souhaite utiliser Scrapy Splash sur mon serveur.

Voici historydes commandes que j'ai exécutées.

docker run -p 8050:8050 scrapinghub/splash
sudo docker run -p 8050:8050 scrapinghub/splash
sudo usermod -aG docker $(whoami)
sudo docker run -p 8050:8050 scrapinghub/splash
newgrp docker
sudo docker run -p 8050:8050 scrapinghub/splash
reboot
sudo docker run -p 8050:8050 scrapinghub/splash
docker run -p 8050:8050 scrapinghub/splash

Vous pouvez voir que j'ai également essayé de redémarrer mon serveur, mais cela n'a pas aidé.

voir la sortie de ps -aux | grep docker

root@mani:/var/www/html# ps aux | grep docker
root      8524  0.0  0.8 127904 13964 ?        Ssl  17:21   0:00 /usr/bin/dockerd --raw-logs
root      8534  0.0  0.3  90588  5012 ?        Ssl  17:21   0:00 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc
root      8543  0.0  0.0   8812   764 pts/1    S+   17:21   0:00 grep --color=auto docker
root     16356  0.0  0.0  17200   964 pts/1    S    17:14   0:00 newgrp docker
root     20080  0.0  0.0  17200   964 pts/1    S    17:06   0:00 newgrp docker
root     30221  0.0  0.0  17200   964 pts/1    S    17:09   0:00 newgrp docker
Umair Ayub
la source
Si vous exécutez ps aux | grep docker, voyez-vous le processus démon en cours d'exécution?
Rome_Leader
Double
@Rome_Leader voir la sortie dans ma question ...
Umair Ayub
3
essayez ceci: redémarrage du docker du service sudo
Haythem ROUIS
2
vous pouvez voir l'état de votre démon docker en utilisant ceci: sudo service docker statusvérifiez s'il est actif
Haythem ROUIS

Réponses:

163

Vous pouvez essayer ceci:

systemctl start docker

Cela a bien fonctionné pour moi.

PS: après s'il y a des commandes que vous ne pouvez pas faire sans sudo, essayez ceci:

gpasswd -a $USER docker
H.Gmz
la source
10
En exécutant la première commande, j'ai eu une erreur: Failed to start docker.service: Unit docker.service is masked.Donc, j'ai dû exécuter: systemctl unmask docker.service systemctl unmask docker.socket systemctl start docker.service
Chris Phan
50

Vous pouvez obtenir cette erreur si le docker ne s'arrête pas correctement. La réponse suivante concerne le package snap docker.

Exécutez snap logs dockeret recherchez ce qui suit:

Error starting daemon: pid file found, ensure docker is not running or delete /var/snap/docker/179/run/docker.pid

La suppression de ce fichier et le redémarrage de docker ont fonctionné pour moi.

rm /var/snap/docker/<your-version-number>/run/docker.pid
snap stop docker
snap start docker

Assurez - vous de remplacer <your-version-number>‍le numéro de version appropriée.

Niklas
la source
Comment éviter que cela ne se produise? Chaque fois que j'allume mon PC, je dois supprimer docker.pid!
Hamidreza
48

Courez

sudo dockerd

dockerd est le service démon pour les conteneurs docker, car il ne s'exécute pas en arrière-plan, nous ne sommes pas en mesure d'effectuer des actions liées au service, qui doit être redémarré.

Yash Pokar
la source
10
C'est la seule commande qui fonctionne pour moi. Je pense que c'est ridicule de devoir sauter à travers tant d'obstacles pour que Docker soit opérationnel.
Homunculus Reticulli
3
Ça me donne une erreurError starting daemon: Devices cgroup isn't mounted
Vineet 'DEVIN' Dev
@fepegar Peut-être que le docker n'est pas installé correctement
Yash Pokar
@YashPokar en effet, j'ai fini par réinstaller et maintenant les choses fonctionnent comme prévu. Merci.
fepegar
Seule commande qui fonctionne pour moi dans un conteneur Docker pour démarrer un conteneur Docker. J'en ai besoin pour le codebuild, pour créer mon propre environnement pendant la construction. :-)
Nous sommes Borg le
21

Tout d'abord, essayez avec sudo , car l'utilisateur actuel n'a peut-être pas les autorisations d'accès pour communiquer avec le démon docker, c'est-à-dire /var/run/docker.sock

Si cela ne fonctionne toujours pas, alors, après l'installation, arrêtez simplement le démon docker comme,

$ sudo service docker stop

Et, exécutez la commande suivante pour démarrer le démon en arrière-plan,

$ sudo nohup docker daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

Pour faciliter l'utilisation de Docker, vous devez ajouter votre nom d'utilisateur au groupe d'utilisateurs Docker. L'ajout d'un utilisateur au groupe peut être fait avec la commande ci-dessous

$ sudo usermod -aG docker $USER

En outre, cette étape est mentionnée dans la documentation officielle des étapes de post-installation de docker pour Linux ( https://docs.docker.com/engine/installation/linux/linux-postinstall/ )

Les utilisateurs d'Ubuntu 16.04 peuvent suivre ces étapes,

Modification du fichier interne /lib/systemd/system/docker.service : ExecStart = / usr / bin / dockerd fd: // avec ExecStart = / usr / bin / dockerd -H tcp: //0.0.0.0: 2375

Modification du fichier interne /etc/init.d/docker :

DOCKER_OPTS = avec DOCKER_OPTS = "- H **** tcp: //0.0.0.0: 2375 "

puis redémarrez votre machine. Et, commencez à jouer avec docker.

mohan08p
la source
1
running sudo nohup docker daemon -H http://tcp://0.0.0.0:2375 () -H http://unix:///var/run/docker.sockdonne bash: syntax error near unexpected token (''
Umair Ayub
1
J'utilise redhat linux
Umair Ayub
ohh ... désolé. Caractères supplémentaires (), mis à jour. Quelle version de RHEL? Vérifiez simplement la valeur que vous obtenez avec $ DOCKER_HOST?
mohan08p
$ sudo systemctl permet à docker de démarrer le service docker au moment du démarrage.
mohan08p
J'essaye maintenant d'installer Docker sur CentOS Linux release 7.3.1611 (Core)... Mais maintenant l'erreur est Your Linux kernel version 2.6.32-042stab116.2 is not supported for running docker. Please upgrade your kernel to 3.10.0 or newer.... puis-je mettre à jour le noyau en utilisant yum update kernel... ???? La question est, va-t-il supprimer tout sur mon serveur? c'est un serveur en direct avec un site Web en cours d'exécution, je ne veux pas le gâcher.
Umair Ayub
9

Cela se produit généralement si vous n'avez probablement pas arrêté docker.

Résoudre

service docker stop
cd /var/run/docker/libcontainerd
rm -rf containerd/*
rm -f docker-containerd.pid
service docker start

puis "docker run ...." pour télécharger votre image et démarrer le conteneur comme d'habitude

Innocent Anigbo
la source
8

Je viens de frapper ceci après avoir fait une nouvelle installation de DOCKER à partir de la documentation principale. Le problème pour moi était qu'immédiatement après l'installation, le service ne fonctionnait pas.

Ces commandes vous aideront à vous assurer que docker est opérationnel pour que votre commande d'exécution le trouve:

$ sudo service --status-all 
$ sudo service docker start
$ sudo service docker start
Paul McDaniel
la source
7

Je cours sur root et j'ai essayé ci-dessous, cela a fonctionné:

service docker start

export DOCKER_HOST="tcp://0.0.0.0:2375"
user11500628
la source
3
Si cela fonctionne sur votre hôte, vous n'avez effectivement pas de mot de passe root. Toute personne ayant accès à ce port peut exécuter des commandes en tant que root sur votre hôte.
BMitch
6

J'ai eu ce problème après la fermeture de docker tirant un conteneur docker pull mongo. Au début, je recevais des erreurs étranges, alors j'ai purgé le docker sudo apt-get purge docker.ioet réinstallé sudo apt-get install docker.io... tout cela n'a rien fait. Je ne pouvais même pas exécuter le conteneur hello-world. Le correctif correct pour moi au moins était:

systemctl unmask docker.service
systemctl unmask docker.socket
systemctl start docker.service

Après cela, je pourrais tirer mongo et courir Hello World.

À votre santé!

Jonathan Saylor
la source
Je devais le faire avec Sudo sur un Ubuntu 18.04
Basanth le
4

voici la solution qui fonctionne pour moi sous Linux

systemctl start docker.

Mohammad Heydari
la source
3

Cela a fonctionné pour moi:

sudo systemctl unmask docker
sudo systemctl start docker
Md. Rakibul Islam
la source
travaillé pour moi. Merci.
ncesar le
2

utilisez ceci dans ubuntu export DOCKER_HOST = tcp: // localhost: 2375

Yash Keshri
la source
Si cela fonctionne sur votre système, vous n'avez effectivement pas de mot de passe root. Toute personne ayant accès à ce port peut exécuter des commandes en tant que root sur l'hôte.
BMitch
2

export DOCKER_HOST = tcp: // localhost: 2375 est parfait pour quiconque n'a pas d'accès sudo et l'utilisateur n'a pas accès à unix: ///var/run/docker.sock

Mantas Marma
la source
Ceci est également utile pour toute personne qui n'a normalement pas d'accès root mais qui souhaite facilement devenir root sur votre hôte. Toute personne ayant accès à ce port peut exécuter des commandes en tant que root.
BMitch
@BMitch voulez-vous élaborer?
Fran Marzoa
@FranMarzoa d'un autre utilisateur auquel vous ne faites pas confiance, ou même d'un autre hôte, vous pouvez exécuter n'importe quelle docker runcommande avec l'utilisateur root à l'intérieur du conteneur, privilégié, avec des espaces de noms d'hôte sur pid et réseau, et en montant le système de fichiers racine dans la boîte.
BMitch
2

J'essayais d'exécuter docker (juste installé) dans une instance d'AWS lorsque le message apparaît. J'écris juste sudo service docker startet fonctionne bien pour moi.

Voir également AWS avec Docker

dmarquina
la source
2

entrez la description de l'image ici

J'oublie simplement d'exécuter Docker Desktop sur mon mac, après avoir exécuté Docker Desktop, vous serez prêt à partir.

Ping Woo
la source
2

Cette exception survient lorsque le service de docker n'est pas en cours d'exécution ou que l'utilisateur connecté n'a pas l'autorisation d'accéder à docker et généralement il vient dans RedHat

L'utilisation de la commande ci-dessous devrait résoudre le problème

démarrage du menu fixe du service sudo

entrez la description de l'image ici

Sumit Arora
la source
1

J'ai eu le même problème pour le nœud en cours d'exécution de gitlab CI: image lts:

  • Je viens de redémarrer le démon docker et de redémarrer le conteneur, cela a fonctionné pour moi.
akshaymittal143
la source
1

Cela a fonctionné pour moi, cela pourrait fonctionner pour vous si vous utilisez Ubuntu 16 ou 18 (14 peut également fonctionner). Facile à essayer:

Accédez au logiciel Ubuntu, tapez Docker. Désinstallez docker (108 Mo) s'il y est préinstallé. Installez docker Maintenant, exécutez les commandes et voyez si la même erreur se produit

L'erreur:

entrez la description de l'image ici

Après avoir suivi les étapes ci-dessus. entrez la description de l'image ici

Comme vous pouvez le voir, cela a fonctionné :)

Ashish Gupta
la source
1

J'ai rencontré le même problème sous Linux lorsque j'ai installé docker en utilisant yum (yum install docker).

Résolution: téléchargez le binaire docker depuis le site officiel: installez , décompressez et suivez les étapes d'installation.

Denys
la source
1

Aucune des réponses actuelles n'a fonctionné pour ma version de cette erreur. J'utilise la version de bureau d'Ubuntu 18. Les deux commandes suivantes ont résolu le problème.

sudo snap connect docker:home :home

sudo snap start docker

Eric
la source
0

Pour moi, la solution consistait simplement à m'assurer que j'avais installé le bon package Docker. Par exemple, pour Ubuntu, les packages dépréciés sont:

  • docker
  • moteur docker
  • docker.io
  • containerd
  • runc

Pour l'installation, consultez https://docs.docker.com . Les instructions sont fournies pour Ubuntu , CentOS , Debian et Fedora au moment de la rédaction.

RikH
la source
Vous avez manqué certaines étapes: suivez ce lien pour signer le dépôt. medium.com/@sebagomez/…
Robert
@Robert, ci-dessus, je me réfère également au docs.docker officiel pour obtenir la clé PGP. C'est plus sûr que les utilisateurs qui le copient à partir de ce site ou de ce support.
RikH
J'ai essayé les étapes ubuntu et celles-ci ne fonctionnent pas. Besoin du processus de signature et du lien que j'ai fourni.
Robert
@Robert, merci d'avoir supprimé mes instructions incomplètes et de me référer à la documentation officielle.
RikH
0

Assurez-vous que les informations de ce chemin /etc/docker/daemon.json

{
  "registry-mirror": [
    "https://registry.docker-cn.com"
  ],
  "insecure-registries": [
    "192.168.199.100:5000"
  ]
}

supprimer

"insecure-registries": [
    "192.168.199.100:5000"
]

et fonctionne bien entrez la description de l'image ici

chao chen
la source
0

Cela pourrait être lié à l'absence d'espace disque sur le disque dur. Assurez-vous qu'il reste de l'espace sur l'appareil, Docker ne peut pas démarrer s'il n'y a plus d'espace.

K - La toxicité du SO augmente.
la source
0

Utilisation docker start <your_container_name>

Puis connectez-vous à la base de données en utilisant mssql -u <yourUsername> -p <yourPassword>

Si vous obtenez une erreur dans la première étape, le docker est en cours d'exécution et passez à la deuxième étape.

Remarque: J'utilise Mac comme système d'exploitation principal et cela pourrait être la même réponse pour les systèmes d'exploitation basés sur Unix. Si non! Désolé d'avance.

Pavankumar AN
la source
0

J'ai également reçu le message d'erreur ci-dessous, après avoir installé le docker et exécuté: docker run hello-world

Impossible de se connecter au démon Docker sous unix: /var/run/docker.sock. Le démon docker est-il en cours d'exécution?

Voici une solution, ce qui a fonctionné pour moi. Environnement - Windows 10 (n'oubliez pas d'activer sous Windows: Paramètres> Mise à jour et sécurité> Mode développeur) - Ubuntu 18.04 LTS - Docker Desktop version 2.3.0.2 (45183) - Activer dans Docker Desktop: Expose daemon sur tcp: // localhost: 2375 sans TLS - Docker Desktop doit également être en cours d'exécution (connecté à Docker Hub ... connectez-vous simplement)

Après avoir installé ubuntu, mettez à jour le référentiel

sudo apt-get mise à jour

Pour utiliser un référentiel via HTTPS

sudo apt-get install \ apt-transport-https \ certificats-ca \ curl \ gnupg-agent \ software-properties-common

Ajoutez la clé officielle Docker GPG:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key ajouter -

Assurez-vous que vous avez maintenant la clé avec l'empreinte digitale

empreinte digitale sudo apt-key 0EBFCD88

Mettre à jour le référentiel

sudo apt-get mise à jour

Mettre à jour le référentiel Docker

sudo add-apt-repository \ "deb [arch = amd64] https://download.docker.com/linux/ubuntu \ $ (lsb_release -cs) \ stable"

Mettre à jour à nouveau le référentiel

sudo apt-get mise à jour

Commande pour installer le docker dans la version: 5: 18.09.9 ~ 3-0 ~ ubuntu-bionic

sudo apt-get install docker-ce = 5: 18.09.9 ~ 3-0 ~ ubuntu-bionic docker-ce-cli = 5: 18.09.9 ~ 3-0 ~ ubuntu-bionic containerd.io

Commande pour définir le DOCKER_HOST

export DOCKER_HOST = "tcp: //0.0.0.0: 2375"

Remarque: mettez la commande ci-dessus dans votre profil pour commencer par ubunto ex: echo "export DOCKER_HOST = 'tcp: //0.0.0.0: 2375'" >> ~ / .bashrc

Ajouter un utilisateur au groupe Docker

sudo usermod -aG docker $ USER

Redémarrez ubuntu

(Fermez et ouvrez à nouveau la fenêtre ubuntu)

Test de l'installation (NE PAS utiliser plus de sudo avant les commandes docker (cela donnera une erreur), l'utilisateur "root" a déjà été inclus dans le groupe docker)

docker exécuter bonjour le monde

Le message ci-dessous devrait s'afficher

Bonjour de Docker! Ce message indique que votre installation semble fonctionner correctement.

Remarque: en cas d'échec, réexécutez la commande: export DOCKER_HOST = "tcp: //0.0.0.0: 2375"

export DOCKER_HOST = "tcp: //0.0.0.0: 2375"

Référence: https://docs.docker.com/engine/install/ubuntu/ Session: INSTALL DOCKER ENGINE

Pour les autres versions du docker pouvant être installées avec ubuntu, consultez le référentiel à l'aide de la commande ci-dessous:

apt-cache madison docker-ce

Ensuite, installez la version souhaitée du docker:

sudo apt-get install docker-ce = docker-ce-cli = containerd.io

ukaliko
la source
0

Pour tous ceux qui rencontrent des problèmes avec Docker au moment de l'installation.

Une erreur indiquant une défaillance du service docker, exécutez les commandes ci-dessous.

$ sudo apt update

$ sudo apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common

$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"

$ sudo apt update

$ apt-cache policy docker-ce

$ sudo apt install docker-ce
Hisham Javed
la source
-1

Ce problème peut être résolu de manière permanente en exécutant 1. systemctl enable docker 2. service docker start

JV Reddy
la source
Il semble que je doive démarrer le service docker à service start dockerchaque fois que je redémarre l'ordinateur.
Pran Kumar Sarkar
@PranKumarSarkar Pas si vous exécutez "sudo systemctl enable docker"
GabrielBB