Compose: ERREUR: impossible de se connecter au démon Docker à l'adresse http + docker: // localunixsocket - est-il en cours d'exécution?

Créé le 24 nov. 2016  ·  204Commentaires  ·  Source: docker/compose

Je sais qu'il y a un autre problème du même type mais l'autre problème est clos et j'ai essayé toutes les solutions proposées mais sans effet.

ne fonctionne toujours pas:

matteo<strong i="8">@ubuntuDockerMB</strong>:~/wordpress-docker$ sudo docker -v
Docker version 1.12.3, build 6b644ec
matteo<strong i="9">@ubuntuDockerMB</strong>:~/wordpress-docker$ sudo docker-compose up
ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?

If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
matteo<strong i="10">@ubuntuDockerMB</strong>:~/wordpress-docker$ sudo service docker start
start: Job is already running: docker
matteo<strong i="11">@ubuntuDockerMB</strong>:~/wordpress-docker$ echo $DOCKER_HOST

matteo<strong i="12">@ubuntuDockerMB</strong>:~/wordpress-docker$ DOCKER_HOST=127.0.0.1
matteo<strong i="13">@ubuntuDockerMB</strong>:~/wordpress-docker$ echo $DOCKER_HOST
127.0.0.1
matteo<strong i="14">@ubuntuDockerMB</strong>:~/wordpress-docker$ sudo docker-compose up
ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?

If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
matteo<strong i="15">@ubuntuDockerMB</strong>:~/wordpress-docker$ unset DOCKER_HOST
matteo<strong i="16">@ubuntuDockerMB</strong>:~/wordpress-docker$ sudo docker-compose up
ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?

If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
matteo<strong i="17">@ubuntuDockerMB</strong>:~/wordpress-docker$ groups matteo
matteo : matteo adm cdrom sudo dip plugdev sambashare lpadmin docker

  • Je fais partie du groupe docker

  • J'utilise aussi sudo

  • Le processus est en place

  • La variable DOCKER_HOST n'est pas définie ou 127.0.0.1

  • Reconnecté l'utilisateur

  • Redémarré le serveur

Je pense que j'ai essayé toutes les configurations possibles, ai-je raison?


Spécifications:

  • OS: Ubuntu 14.04.04 sur Virtualbox sur Windows 10 Home.

  • Docker version 1.12.3, build 6b644ec


Je vous remercie!

kinquestion

Commentaire le plus utile

Avez-vous essayé sans sudo ? Vous ne devriez pas en avoir besoin et cela pourrait gâcher les choses dans votre cas. De plus, que voyez-vous lorsque vous exécutez docker info ?

Tous les 204 commentaires

Avez-vous essayé sans sudo ? Vous ne devriez pas en avoir besoin et cela pourrait gâcher les choses dans votre cas. De plus, que voyez-vous lorsque vous exécutez docker info ?

Essayez d'abord d'exécuter dockerd ou sudo dockerd si nécessaire pour démarrer le démon. Si vous commencez dockerd avec sudo vous pouvez également lancer docker-compose up avec sudo . sinon ça va.

@ shin- Bonjour! Je l'ai déjà fait avec sudo et aussi en utilisant root ( sudo su ).

matteo<strong i="7">@ubuntuDockerMB</strong>:~/wordpress-docker$ sudo docker-compose up
ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?

If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.

voici l'opération faite en root

root<strong i="11">@ubuntuDockerMB</strong>:/home/matteo/wordpress-docker# docker-compose up
ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?

If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
root<strong i="12">@ubuntuDockerMB</strong>:/home/matteo/wordpress-docker#

c'est le résultat de docker info

root<strong i="17">@ubuntuDockerMB</strong>:/home/matteo/wordpress-docker# docker info
An error occurred trying to connect: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.24/info: read unix @->/var/run/docker.sock: read: connection reset by peer

@harshajayaweeraXHJ

dockerd ne fonctionne pas mais sudo service docker start fonctionne comme prévu

matteo<strong i="25">@ubuntuDockerMB</strong>:~/wordpress-docker$ sudo dockerd
INFO[0000] libcontainerd: new containerd process, pid: 4039
WARN[0000] containerd: low RLIMIT_NOFILE changing to max  current=1024 max=4096
INFO[0001] [graphdriver] using prior storage driver "aufs"
FATA[0001] Error starting daemon: layer does not exist

PS:

@ shin- &

Vous devez exporter la variable pour qu'elle soit disponible dans les processus enfants:

$ export DOCKER_HOST=127.0.0.1

Bien que cela ne résout pas complètement votre problème ...

J'ai rencontré cette erreur parce que j'ai bêtement ignoré les prérequis ubuntu.

merci @jamethy , j'ai bien fait ça et je reçois

matteo<strong i="7">@ubuntuDockerMB</strong>:~/wordpress-docker-tut$ docker-compose up -d
Traceback (most recent call last):
  File "<string>", line 3, in <module>
  File "compose/cli/main.py", line 65, in main
  File "compose/cli/main.py", line 114, in perform_command
  File "compose/cli/command.py", line 36, in project_from_options
  File "compose/cli/command.py", line 111, in get_project
  File "compose/cli/command.py", line 83, in get_client
  File "compose/cli/docker_client.py", line 74, in docker_client
  File "site-packages/docker/client.py", line 59, in __init__
  File "site-packages/docker/utils/utils.py", line 438, in parse_host
docker.errors.DockerException: Bind address needs a port: 127.0.0.1
docker-compose returned -1

Ayant le même problème maintenant, essayant également d'installer Wordpress sous docker. J'ai tout essayé, mais je n'arrive toujours pas à me connecter. Le démon Docker n'est pas en cours d'exécution ... Je vais réessayer

pour moi le problème reste là:

Bind address needs a port: 127.0.0.1

mais ce numéro doit être créé par docker lui-même

J'ai le même problème que l'affiche originale et j'ai essayé toutes les suggestions ci-dessus.

Il semble que parfois le docker «meurt» et ne fonctionne pas, et à d'autres moments il continue de fonctionner. J'ai remarqué cela en essayant d'exécuter la commande docker info et en obtenant une erreur indiquant que le docker ne fonctionnait pas. L'utilisation de service docker start m'a alors permis d'exécuter la commande info. Voici ce que j'ai:

Containers: 1
Running: 0
Paused: 0
Stopped: 1
Images: 1
Server Version: 1.12.5
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 3
Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: host bridge overlay null
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: apparmor seccomp
Kernel Version: 4.4.0-45-generic
Operating System: Ubuntu 16.04.1 LTS
OSType: linux
Architecture: x86_64
CPUs: 24
Total Memory: 31.42 GiB
Name: ayn
ID: 7TGC:G5WQ:6IYF:XWMH:XF3N:VXU7:SLZB:IHRN:T4FL:D35I:5JUA:H4S5
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
Insecure Registries:
127.0.0.0/8

@ matteo-bombelli Cette erreur est assez claire, vous devez spécifier un port. Faites plutôt export DOCKER_HOST=127.0.0.1:2375 .

@ matteo-bombelli
J'ai eu le même problème.
Vous devez redémarrer le docker.
$ service docker restart
Je l'ai résolu avec ça.

quelqu'un peut-il consolider la solution à ce problème par étapes?

Salut. J'appuie ce dernier commentaire, j'ai le même problème.

J'ai le même problème.

docker ps fonctionne.

docker-compose build (avec la version 2) fonctionne!

docker-compose build (avec la version 3) donne cette erreur: /

@furkanmustafa @ shashijais789 @lalitkumarj Ce serait mieux si vous -D .

même problème. fonctionne avec la version 2, j'obtiens cette erreur avec la configuration de la verison 3.

les étapes suivantes ont résolu le problème pour moi.

supprimer le docker:
$ sudo apt-get remove docker docker-engine
réinstaller avec
curl -sSL https://get.docker.com/ | sh

ajouter un utilisateur à un groupe:
sudo usermod -aG docker user

Peut-être que cette erreur peut s'afficher si l'une des images ne parvient pas à se construire pour une raison quelconque, pas nécessairement à voir avec le démon docker. Par exemple, j'ai réussi à déboguer cela en essayant de créer chaque service à l'aide de Docker.

Mon fichier docker-compose.yml contient:

version: '2'

services:
  # Drupal server
  drupal:
    build:
      context: .
      dockerfile: "Dockerfile-drupal"
  mysql:
    ...

L'appel de docker-compose build entraîne:

Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?

J'ai donc essayé d'utiliser Docker pour créer chaque fichier individuellement:

docker build -f="Dockerfile-drupal" .

Cela m'a donné une erreur plus utile:

Error checking context: 'no permission to read from some/data/directory'

Corriger cette erreur et m'assurer que je peux construire Dockerfile-drupal a permis à docker-compose build fonctionner correctement.

Peut - être que

Couldn't build the services.

 * Make sure you can build your Docker images using "docker build ...".
 * Make sure the Docker daemon is running.
 * If the Docker daemon is at a non-standard location, specify the URL with the DOCKER_HOST environment variable. Currently using http+docker://localunixsocket.

Besoin de tous:
1) apt-get supprimer et réinstaller en utilisant curl comme le suggère Kirill-Babkin (et redémarrer socker pour être sûr)
2) ajouter un utilisateur au groupe docker en utilisant usermod -aG, déconnexion et connexion
3) undefine DOCKER_HOST (comme suggéré par rkazak à https://forums.docker.com/t/docker-commands-require-sudo/12987/2) que j'avais précédemment défini en utilisant> export DOCKER_HOST = 127.0.0.1: 2375 comme suggéré par jamethy and shin
C'était sur un RPi 3B. Après tout cela, docker fonctionne maintenant. Y a-t-il une chance que cela puisse être nettoyé afin que d'autres n'aient pas à vivre cette expérience douloureuse, car ce sont des expériences comme ce docker est conçu pour résoudre? Juste une suggestion.

Dans mon cas, le proxy LAN (défini dans les Options Internet - Je suis sous Windows) avait empêché docker-compose de se connecter à la VM (avec le moteur docker) sur VirtualBox Host-Only Network - la désactivation du proxy a résolu un problème.

Sur Ubuntu 16.04, cela a fonctionné pour moi:
sudo service docker start && docker-compose up -d

Je ne suis pas sûr de ce qui s'est passé, j'ai redémarré mon PC et il a commencé à fonctionner !! : nerd_face:

@ ssi-anik c'est l'informatique 😄

J'ai juste eu le même problème. J'ai trouvé que pour une raison quelconque, mon utilisateur n'a pas été ajouté au groupe de sécurité docker, à son tour ne m'autorisant pas sur le socket unix de docker et me donnant _ERROR: Impossible de se connecter au démon Docker à http + docker: // localunixsocket - est-il en cours d'exécution_ .

L'ajout du groupe docker à mon utilisateur actuel, puis la déconnexion et la reconnexion ont tout résolu pour moi:
sudo usermod -aG docker $USER

Cela échouait à une certaine étape de construction pour moi, j'ai essayé d'exécuter docker build . dans le même répertoire que le Dockerfile et j'ai trouvé que l'un des fichiers que j'essayais de COPY avait des problèmes d'autorisation.

L'exécution de sudo chmod 755 -R . résolu mon problème.

Comme mentionné par @ChrisPappalardo à
https://github.com/docker/compose/issues/1214
vérifiez les autorisations de propriété des fichiers dans vos répertoires de construction. Comme le processus de construction du conteneur est effectué dans le contexte de l'utilisateur actuel, le fait d'avoir un répertoire inaccessible dans l'arborescence appartenant à root peut entraîner une erreur entraînant ce message.

Dans mon cas, la solution de @ alberto56 fonctionnait parfaitement, c'était un problème d'autorisations avec l'un des volumes qui était monté sur l'un de mes services. Je ne sais pas comment la propriété a été modifiée en premier lieu, mais le fait de faire le manuel docker build -f myDockerfile . m'a aidé à trouver mon problème.

Quand j'ai fait un ls -l le répertoire appartenait au groupe 999 et docker , la partie bizarre est que ce n'était même pas pour l'image que j'essayais de construire, il était un service distinct.

J'ai rencontré cette erreur car j'ai monté un volume comme celui-ci, lors du débogage, et j'ai oublié de nettoyer.
volumes:
- ./itsLog:/var/log/itsLog

quand j'ai essayé de construire le Dockerfile, il doit avoir reçu une "permission refusée" en essayant d'AJOUTER le chemin restreint.

La description de l'erreur est quelque peu trompeuse, mais sinon, elle a du sens.

Je viens de changer le fichier /var/run/docker.sock propriétaire en utilisateur actuel, et c'est ok.
Il semble que docker-compose n'avait pas la permission d'accéder à /var/run/docker.sock.

La description de l'erreur est quelque peu trompeuse

Comme il est déjà si peu informatif, pourquoi ne pas vraiment s'y engager et simplement écrire "Non"? / s

Dans mon cas, j'ai dû revoir syslog pour voir que le démon Docker rejetait la spécification de construction parce qu'il y avait des lettres majuscules dans la chaîne de balise.

Ce message d'erreur est une déclaration générale et devrait probablement être documenté (au lieu d'être dispersé dans Stack Overflow et les problèmes github de projets non liés) ou développé.

Le commentaire de @ alberto56 m'a aidé. Eu le même problème. Merci!
Le conteneur précédent que j'avais "volumé" avait créé des fichiers Python compilés; *.pyc . Ceux-ci n'étaient pas accessibles à mon utilisateur.
Problème et correctif copiés ci-dessus:

L'appel de la build docker-compose entraîne:
Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?

Appelez directement docker:
docker build .

Ce qui révèle la vraie cause:
Error checking context: 'no permission to read from '/home/user/dev/project/app/utils.pyc''.

Les autorisations de fichier étaient:
-rw-r----- 1 root root 11K Nov 29 16:32 utils.pyc
Et le correctif était de supprimer ces fichiers:
sudo rm app/*.pyc

Salut les gars,

Après la mise à niveau vers la version 17.12 de docker et j'ai démarré le service docker, mon problème a été résolu.

[] # démarrage du docker de service
13 Redirection vers / bin / systemctl start docker.service
# sudo docker-compose up -d

Nous devons mettre à jour la version du docker, puis composer fonctionnera.

Cordialement,
Prasad RVS

démarrage du docker de service
Redirection vers / bin / systemctl start docker.service
[ root @ kammu02-I9084 LDDS] # sudo docker-compose up -d
Création du réseau "ldds_default" avec le pilote par défaut
Création du volume "ldds_couch-data" avec le pilote par défaut
Tirage de couchdb (isl-dsdc.ca.com:5000/analytics/lddscouchdb:2.1.8c.109) ...
2.1.8c.109: Extraire de analytics / lddscouchdb
dd6405a9d644: Tirage complet
10f659fc3a7e: Tirage complet
8a0ce719aeb8: Tirage complet
fc23f8fbeac2: extraction terminée
5f02dd664e80: Tirage complet
f38b89a75914: Tirage complet
94add1a2ec1e: Tirage complet
e7db1a0942ee: Tirage terminé
87b0136db4b9: Tirage complet
be9ceeef7cb5: Tirage complet
aed07b38ec55: Tirage complet
fc4632d89301: Tirage complet
6152a07afebb: Tirage complet
946862fd0151: Tirage complet
43408ca5f730: Tirage complet
Résumé: sha256: d3c13f08a4c9c3ed450325aef2dbe97abf0a55c13e9e2005109c05c713491fb3
Statut: Image plus récente téléchargée pour isl-dsdc.ca. com: 5000 / analytics / lddscouchdb : 2.1.8c.109
Extraction de ldds-web (isl-dsdc.ca.com:5000/analytics/lddscdb:2.1.8c.109) ...
2.1.8c.109: Extraire de analytics / lddscdb
dd6405a9d644: existe déjà
10f659fc3a7e: existe déjà
8a0ce719aeb8: existe déjà
eebc892936a1: Tirage complet
3c8dd6086ddb: extraction terminée
73c1dfebea61: Tirage complet
9fb23fd0d390: Tirage complet
f8943ba49c47: Tirez complet
a89ff5b6e340: Tirage complet
02615a9d0e05: Tirage complet
e129088bf324: Tirage complet
bf0ba8d71b09: Tirage complet
083300d85e61: Tirage complet
5deacfd6cb23: Pull terminé
220cda5539ae: Tirage complet
8cdee22c663b: Tirage complet
d76b24524469: Tirage complet
9c5ade36643f: Tirage complet
c7ca782f404c: Tirage complet
6a7bbcfb0b95: Tirage complet
Digest: sha256: e2cb43e6b22ab344d7fc17f38e49caa3e295ef0efdfa43bc77ce671e0f172168
Création de ldds_couchdb_1 ... terminé
Création de ldds_couchdb_1 ...
Création de ldds_ldds-web_1 ... terminé

J'ai rencontré l'erreur ci-dessous,
" Impossible de se connecter au démon Docker sur http +

Vérifiez s'il s'agit d'un problème d'autorisation, exécutez "sudo docker ps" s'exécute sans cette erreur et "docker ps" s'exécute avec cette erreur, puis question d'autorisation.

Essayez ces étapes de post-installation de docker. Vous devrez peut-être ajouter «l'utilisateur» au groupe de menu fixe.
https://docs.docker.com/engine/installation/linux/linux-postinstall/

Cela a fonctionné pour moi.

Salut à tous - cela se produit également sur ma machine. Ce qui est étrange, c'est que je n'ai fait aucun changement ni aucune mise à niveau et que cela a commencé à se produire.

@manjukori cela m'arrive même si je suis dans le groupe docker - mais exécuter la même commande sous sudo fonctionne! Donc, d'une part, il semble que vous ayez raison de dire que c'est une sorte de problème d'autorisations, pourtant, je suis membre du groupe docker ! Si étrange...

Ok tout le monde a trouvé le problème! Dans mon cas, j'utilise docker-compose qui monte un répertoire appartenant à root dans l'un des conteneurs. Pour une raison quelconque, cela a empêché docker-compose (qui exécute docker build ) de démarrer.

Dès que j'ai supprimé ce répertoire, tout fonctionne comme avant (même si je ne sais pas pourquoi cela fonctionnait avant).

Vous voudrez peut-être vérifier quelque chose de similaire de votre côté.

chmod 777 il

Votre utilisateur doit être dans le groupe "docker" pour exécuter docker-compose sans sudo. Ajoutez simplement ce groupe à votre compte, déconnectez-vous et reconnectez-vous. Correction de cela pour moi sur Ubuntu et Mac OS.

@jhnoor merci! Ça a marché pour moi
sudo chmod 755 -R .

Je voudrais réitérer l'un des commentaires les plus utiles sur l'autre question qui disait que docker-compose --verbose up[|build] vous aidera à aller au fond de votre problème. Dans mon cas, le message d'erreur de docker-compose était trompeur - j'avais juste besoin de mettre à jour de docker 1.10 (ancien) à 1.12.

La verbosité a révélé ceci:
docker.errors.APIError: 400 Client Error: Bad Request ("le client est plus récent que le serveur (version de l'API client: 1.24, version de l'API du serveur: 1.22)")

Dans mon cas, une seule commande était suffisante pour résoudre le problème: sudo usermod -aG docker $USER (lorsque $ USER est votre utilisateur actuellement connecté). Avec cela, j'ai réussi l'exécution de docker-compose run ... sans sudo partir du shell utilisateur $USER . (Merci, @ Kirill-Babkin: gâteau :).

  • Ubuntu 16.04.3 (nouvelle instance super propre sur AWS)
  • Docker 17.12.1-ce (installé sur apt, suivi de Get Docker CE pour Ubuntu )

Les bonnes réponses proviennent de @manjukori et @yoloseem; la seule chose que je voudrais souligner est d'utiliser la variable env $ USER pour généraliser l'instruction sudo usermod -aG docker $USER (en supposant que vous êtes connecté au shell en tant qu'utilisateur qui doit gérer le docker). Pour d'autres détails importants sur la configuration de docker, consultez le lien publié ci-dessus https://docs.docker.com/install/linux/linux-postinstall/.

@ ramblinwreck35 A modifié mon commentaire comme vous l'avez indiqué. : +1:

Pour moi, c'était mon utilisateur n'étant pas membre du groupe docker. Résoudre...
sudo usermod -aG docker ${USER}
Ensuite, soit déconnectez-vous et reconnectez-vous, soit sudo su - ${USER} pour recevoir la configuration mise à jour dans votre terminal

systemctl restart docker
Résolvez le

Cela est dû à l'autorisation même après l'ajout de votre utilisateur dans le groupe Docker. redémarrer le groupe ou recharger l'autorisation.

J'ai utilisé sudo. problème résolu.

Je ne suis pas tout à fait sûr que mon problème était le même, mais je publie ma solution ici au cas où quelqu'un d'autre aurait le même problème et tomberait sur ce fil.

Dans mon cas, j'ai oublié d'ajouter des répertoires au .dockerignore . Je suppose que c'était trop de données pour le démon docker, car cela fonctionnait après avoir exclu certains répertoires de données.

@harwood et moi étions en image - nous avions une image avec une majuscule. Nous fournissons également build: ./ . Lorsque nous avons supprimé build: ./ nous avons vu un nouveau message d'erreur: invalid reference format: repository name must be lowercase . J'espère que cela aidera quiconque à suivre ce problème.

Salut,

Mon problème a été résolu avec les étapes suivantes:

  1. Arrêtez le service docker
  2. Ajoutez l'utilisateur que vous utilisez pour exécuter la commande docker-compose au groupe docker avec la commande suivante: usermod -aG docker NAME_OF_USER (CentOS 7)
  3. Démarrez le service docker

Avez-vous une configuration de services de base de données comme celle-ci?

`` `` volumes:
- ./db/data:/var/lib/mysql


When i input `docker-compose build` with db server ,I got this error. 
So, I input `sudo chown -R $USER:$USER /db/data` in order to got data permission.And I tried "docker-compose build" without the error.

docker-compose.yml

version: '3'
prestations de service:
db:
construire:
./db
commande: mysqld --default-authentication-plugin = mysql_native_password
ports:
- "3306: 3306"
volumes:
- ./db/data:/var/lib/mysql
env_file:
- mysql.env
privilégié: vrai
''

Le redémarrage de docker a également fonctionné pour moi.

Je l'ai résolu en changeant le propriétaire de root en moi en /var/run/docker.sock . Je ne sais pas pourquoi le paquet apt s'installe en tant que root.

$ sudo show derp:derp /var/run/docker.sock

Ran dans un problème similaire tout à l'heure, m'a pris quelques heures pour comprendre la cause.

L'histoire va comme ceci: nous utilisons Jenkins pour CI et il exécute des tests pour notre service principal avec docker-compose car il repose sur quelques autres services. Un collègue a poussé un brach et Jenkins n'a tout simplement pas réussi à le construire, même si le code et les tests étaient parfaitement bien. Le problème semble être le suivant:

  • Jenkins crée un dossier pour chaque pipeline et raccourcit son nom à une certaine longueur. Il compose un nom de dossier comme "$GIT_BRANCH-$RANDOMISH_HASH" et le plus curieux est qu'il tronque la chaîne depuis le début.
  • Le nom de la branche défaillante contenait des tirets ( - ), et le nom de répertoire résultant généré par Jenkins a fini par commencer par - .
  • Ensuite, Jenkins exécuterait docker-compose dans ce dossier, et par défaut, docker-compose utilise le nom du répertoire comme préfixe pour nommer les conteneurs.
  • Cela signifie qu'il essaie de créer des conteneurs avec des noms commençant par un tiret ( - ) et qui semble être un caractère illégal pour que le nom d'un conteneur de docker commence par.
  • Et puis docker-compose échoue avec une erreur générique avec un trompeur "Impossible de se connecter au démon Docker - est-il en cours d'exécution?" message.

La solution dans mon cas était de spécifier un nom de projet personnalisé ( -p ) qui serait utilisé à la place du nom de répertoire par défaut:

docker-compose -f docker-compose.ci.yml -p "$SANITIZED_GIT_BRANCH" build

@ alberto56 Travail fixe:

chown -R user:user .

Mettez également à jour votre .dockerignore s'il y a quelque chose qui n'est pas censé être expédié à docker pour être construit.

essayez ceci ajouter sudo c'est tout

sudo docker-compose up

la solution pour moi est d'ajouter mon utilisateur au groupe docker, merci de ne pas utiliser sudo lors de l'utilisation de docker
https://techoverflow.net/2017/03/01/solving-docker-permission-denied- while-trying-to-connect-to-the-docker-daemon-socket/

Dans mon cas, si l'utilisateur n'a pas les autorisations pour /var/run/docker.sock docker-compose a essayé de se connecter à http+docker://localhost .
sudo usermod -a -G docker $USER peut résoudre ce problème.

à ce stade https://github.com/docker/compose/issues/4181#issuecomment -317120015
redémarrer le PC résoudra ce problème

CentOS
Je dois dire que j'ai résolu en déconnectant et en me reconnectant au serveur ...

tl; dr arrêter les commentaires inutiles
Les mecs. Je pense que le redémarrage ne devrait faire partie d'aucun problème dans GitHub. S'il vous plaît. Cela nous distrait de ce que nous faisons par des notifications inutiles. Gardez à l'esprit que les commentaires ici visent à ajouter de la valeur au problème lui-même. Le redémarrage ne résout pas le problème car cela se reproduit. À un moment donné en particulier, le socket est bloqué et donc une fois que si quelqu'un trouve quelque chose d'autre qui n'a pas été commenté plus tôt dans ce fil ajoute de la valeur, veuillez faire un commentaire, sinon, veuillez éviter de créer des notifications :) - désolé pour la longue chose.

sudo chown $USER:docker /var/run/docker.sock fonctionne pour moi.

sudo which docker-compose up fonctionne très bien pour moi sur Ubuntu 16.

Cela ressemble à plusieurs problèmes d'accès différents. J'ai ce problème sur le nouveau Fedora 28 et je l'ai résolu en désactivant selinux.

le mien résolu en tapant
sudo dockerd
//puis
sudo docker-compose up -d

SET un volume avec "/var/run/docker.sock:/var/run/docker.sock" et fonctionnera

Cela a fonctionné après avoir redémarré le serveur :)

Le mien était juste parce que docker-compose n'était pas sur PATH . La réponse de @pelican l'a résolu

suivez simplement les instructions mentionnées dans ce numéro et redémarrez votre machine.

Faire cela a fonctionné pour moi:

sudo apt-get purge golang-docker-credential-helpers

Juste face au cas où cela a fonctionné et quelques lignes de shell plus tard (sans aucune installation / mise à niveau de package), il lève cette erreur. Je viens d'essayer d'autres projets et il se construit donc je sens quelque chose de cassé avec le cache docker ou les éléments internes liés à cette image .. L'élagage de l'image Docker, le redémarrage du service docker ou du système d'exploitation ne fonctionne pas. Docker est installé correctement (sans besoin de sudoing).

Edit: l'élagage du système et la suppression de ce conteneur particulier ont résolu le problème

Pour moi, c'était mon utilisateur n'étant pas membre du groupe docker. Résoudre...
sudo usermod -aG docker ${USER}
Ensuite, soit déconnectez-vous et reconnectez-vous, soit sudo su - ${USER} pour recevoir la configuration mise à jour dans votre terminal

c'est la bonne solution

sudo docker-compose run ....... fonctionné pour moi :)

J'ai eu les mêmes problèmes, et j'ai corrigé le redémarrage de mon docker, merci beaucoup

La réponse se trouve dans la documentation de Docker sur la section des étapes de post-installation:
https://docs.docker.com/install/linux/linux-postinstall/

Comme indiqué sur doc:

Le démon Docker se lie à un socket Unix au lieu d'un port TCP. Par défaut, le socket Unix appartient à l'utilisateur root et les autres utilisateurs ne peuvent y accéder qu'en utilisant sudo

C'est pourquoi cela fonctionne en exécutant la commande avec sudo .

Si vous souhaitez à la place que votre utilisateur personnalisé se connecte à docker (comme dans mon cas), vous devez l'ajouter sur le groupe docker avec:

sudo usermod -aG docker $USER

En fait, la propriété du socket docker est:
srw-rw---- 1 root docker 0 Oct 3 11:31 /var/run/docker.sock

Après cela, comme indiqué sur doc, vous devez vous déconnecter et vous reconnecter ou redémarrer si vous testez sur une machine virtuelle.

J'ai testé une machine virtuelle Ubuntu 14.04 fonctionnant sur Parallel et je n'ai pas eu besoin de la redémarrer. J'avais juste besoin de me reconnecter pour résoudre le problème.

REMARQUE
Jetez un œil à l'avertissement indiqué sur la documentation, car le groupe "docker" accorde des privilèges équivalents à l'utilisateur root. L'ajout d'un utilisateur à ce groupe peut donc être un problème de sécurité selon votre scénario.

exécutez la commande en tant que root

export DOCKER_HOST = 127.0.0.1

puis localisez-vous dans le dossier de votre docker-compose.yml et exécutez la commande:
su docker-compose up

Comme indiqué dans les commentaires précédents, essayer de créer chaque service individuellement donne des messages d'erreur plus utiles.
J'ai eu cette erreur car le nom de mon image était en majuscules dans le fichier docker-compose.yml.
La modification des propriétés du nom du service et de l'image du service a résolu le problème.

Redémarrez simplement docker et cela fonctionnera parfaitement.
Exécutez: service docker restart , puis exécutez la commande docker de votre choix.

Vous devez ajouter votre utilisateur au groupe docker pour éviter "sudo docker ..."
sudo usermod -aG nom d'utilisateur du docker

Votre utilisateur fait-il partie du groupe d'utilisateurs Docker?

sudo usermod -aG docker ${USER}

Consultez cet article: https://medium.com/@ibrahimgunduz34/if -you-face-an-issue-like-couldnt-connect-to-docker-daemon-at-http-docker-localunixsocket-is-27b35f17d09d

cela ne fonctionnait pas non plus pour moi. Je viens d'ajouter sudo avant la commande et cela a commencé à fonctionner.

sudo dockerd

Donne moi

Segmentation fault

donc mon problème est que le démon docker ne fonctionne pas, mais je ne sais pas ce que je dois faire

J'ai trouvé cela utile

J'ai mis à jour mon docker-compose de 1.16.1 à 1.23.1 , je l'ai résolu!

Je ne suis pas sûr de ce qui s'est passé, j'ai redémarré mon PC et il a commencé à fonctionner !!

J'ai eu le même problème et pour moi la raison pour laquelle un redémarrage l'a corrigé était qu'après l'installation, mon utilisateur a été ajouté au groupe docker, mais ce changement de groupe n'était devenu effectif que par une reconnexion.

J'ai rencontré ce problème aujourd'hui en raison d'une erreur que j'ai commise dans mon fichier docker-compose.yml.

J'ai accidentellement inclus la déclaration de clé volumes: deux fois, ce qui a entraîné un échec de mappage de docker.sock dans un conteneur interne. L'erreur ressemblait à ceci:

    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    volumes:
      - datafiles:/datafiles

Ce qui aurait dû juste dire:

    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - datafiles:/datafiles

J'ai découvert que lorsque vous déclarez deux sections de volumes comme celle-ci, la première est ignorée. Le conteneur n'était, bien sûr, pas en mesure d'exécuter des commandes docker à cause de cela.

J'ai eu le même problème, mais j'ai pu le résoudre en exécutant le docker en tant que racine ou en appliquant des autorisations d'exécution.

J'ai utilisé ce lien https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-18-04 pour exécuter la commande Docker sans la section Sudo.

Une question légèrement décalée, depuis un certain temps je cherche de la documentation ou des références concernant la définition du schéma http+docker:// . Quelqu'un ici a-t-il une URL ou une référence à ce schéma? Merci!

J'ai eu ce problème, mais j'ai réalisé que le message d'erreur de docker-compose était extrêmement inutile et trompeur. Pour trouver la cause réelle, je viens de docker build <service> manuellement pour chaque service dans mon docker-compose.yml jusqu'à ce que j'en trouve un qui refuse de construire. Dans mon cas, c'était un problème d'autorisations avec __pycache__ dans le répertoire de service.

J'ai eu le même problème et aucune des solutions n'aidait.
J'ai essayé l'idée Rosso84.
sudo service docker stop
sudo dockerd
Maintenant je peux courir
docker-composer
avec succès.
Un peu d'étrangeté continue -
sudo docker-composer
dit commande introuvable.

cela a fonctionné pour moi:
sudo groupadd docker
sudo gpasswd -a $ USER docker

Faites un docker newgrp ou déconnectez-vous / connectez-vous pour activer les modifications apportées aux groupes.
docker newgrp

J'ai eu ce problème lors de l'utilisation d'un argument de construction non défini, qui a ensuite été utilisé dans la balise de mon image FROM . Correction: définissez l'argument de construction sur autre chose qu'une chaîne vide.

le redémarrage du serveur l'a résolu pour moi

Si vous n'êtes pas un utilisateur root, essayez d'ajouter l'utilisateur à l'autorisation du docker

sudo usermod -a -G docker theUser

Je l'ai aussi réparé en redémarrant mon Ubuntu ...

Salut ,

problème résolu avec sudo avant la commande;),

Merci,
Moatez

C'est un problème de permission.

- sudo chown $USER:docker /var/run/docker.sock Cela a fonctionné pour moi dans une configuration ubuntu 18.

Je ne suis pas sûr de ce qui s'est passé, j'ai redémarré mon PC et il a commencé à fonctionner !!

Prenez votre comme, monsieur

tapez simplement sudo avant votre commande docker-compose !

cela a fonctionné pour moi
sudo chown $USER:docker /var/run/docker.sock

usermod -a -G docker UTILISATEUR
Puis déconnectez-vous et reconnectez-vous USER.

J'ai rencontré la même erreur chaque fois que j'avais une variable dans docker-compose.yml qui n'est PAS présente dans .env.

Erreur étrange pour un tel scénario mais - peu importe. :)

tapez simplement sudo avant votre commande docker-compose !

Prenez votre comme, monsieur!
omg ..., mais fonctionne très bien pour moi, excellent travail!

je devais juste faire:
sudo ln -s / usr / local / bin / docker-compose / usr / bin / docker-compose

et ça a marché!

J'ai installé docker-compose et en même temps résolu le problème avec les étapes suivantes:
étape 1:
sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose- uname -s - uname -m -o / usr / local / bin / docker-composer

Étape 2:
sudo chmod + x / usr / local / bin / docker-compose

étape 3:
docker-compose --version

Étape 4:
export DOCKER_HOST = 127.0.0.1: 2375

étape 5:
usermod -a -G docker $ USER

étape 6:
Redémarrez votre PC ou exécutez la commande
fermer

Cela a fonctionné pour moi:

sudo usermod -aG docker $ (whoami)

Se déconnecter

s'identifier

vérifiez que vous êtes bien dans le groupe "docker".

- sudo chown $USER:docker /var/run/docker.sock Cela a fonctionné pour moi dans une configuration ubuntu 18.

THX!

Bonjour,
a obtenu le même message d'erreur:

ERREUR: Impossible de se connecter au démon Docker sur http + docker: // localhost - est-il en cours d'exécution?
S'il se trouve à un emplacement non standard, spécifiez l'URL avec la variable d'environnement DOCKER_HOST.

Mais ce message était trompeur, car mon docker deamon n'a eu aucun problème de connexions.
La raison était une erreur stupide que j'ai faite dans le Yaml (que je ne savais pas auparavant). J'ai accidentellement eu une lettre majuscule dans le nom de l'image. Cela a conduit au fait que le service n'a pas pu être formé, puisque seules les lettres minuscules sont autorisées comme noms.
J'ai remarqué l'erreur lorsque j'ai essayé de créer le Dockerfile séparément avec les noms.
Ce serait pratique si docker-compose pouvait transmettre les erreurs qui se produisent dans les problèmes de construction. Puisque, comme @ shin- l'a également dit, ce bogue peut encore se produire pour de nombreuses raisons en ce moment. Même si cela fait un certain temps que @ shin- a écrit ceci, le problème semble toujours exister. Cela pourrait peut-être être utile.

Je viens de poster mon problème ici, car tout le monde pense strictement aux vrais problèmes de connexion avec docker et je voulais montrer que cela n'a pas besoin d'être toujours le cas.

$ cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core) 

$ sudo service docker start
$ sudo service docker status

Bonjour,

J'ai fait face au même problème. Mais cela a été résolu après le redémarrage de ma VM.

BR.Saurabh

cette commande me résout:

sudo usermod -aG utilisateur du menu fixe

commandes:

sudo ln -s / usr / local / bin / docker-compose / usr / bin / docker-compose
sudo docker-compose up -d

Si vous venez d'installer docker et que vous avez simplement accordé à un utilisateur le groupe docker, essayez de vous déconnecter de cet utilisateur et de vous reconnecter.

sudo service docker start && docker-compose up -d

Veuillez essayer avec la commande ci-dessus. Le problème est résolu pour moi

Aucune des solutions énumérées ci-dessus ne m'a résolu. D'autres idées?

ERREUR: Impossible de se connecter au démon Docker sur http + docker: // localhost - est-il en cours d'exécution?

S'il se trouve à un emplacement non standard, spécifiez l'URL avec la variable d'environnement DOCKER_HOST.

resolvi o problema com esse en référence:

sudo chown $USER:docker /var/run/docker.sock

👇🏻👇🏻👇🏻👇🏻👇🏻👇🏻
👉🏽SOLUTION 👈
👆🏿👆🏿👆🏿👆🏿👆🏿👆🏿

si vous n'avez encore rien essayé de cette bande de roulement, exécutez ces deux commandes et cela résoudra ce problème particulier:
sudo usermod -a -G docker $USER # ajoute votre utilisateur actuel au groupe docker
newgrp docker # active de nouvelles autorisations pour le groupe docker

sudo usermod -a -G docker $ USER # ajoute votre utilisateur actuel au groupe docker
newgrp docker # active de nouvelles autorisations pour le groupe docker

Doit être newgrp -l docker . Lorsque vous utilisez cela, les utilisateurs doivent savoir que newgrp démarre un nouveau shell afin que leur environnement soit réinitialisé comme s'ils se connectaient à nouveau s'ils utilisaient -l .

Nous devons d'abord remonter tmp avec l'autorisation d'exécution en exécutant

  1. sudo mount / tmp -o remount, exec
    puis créez docker en
  2. "service docker start" dans l'utilisateur root ou "sudo service docker start"
    puis
  3. "docker-compose up" ou "docker-compose start" a fonctionné pour moi

sudo docker-compose up -d
ERREUR: Impossible de se connecter au démon Docker sur http + docker: // localhost - est-il en cours d'exécution?

S'il se trouve à un emplacement non standard, spécifiez l'URL avec la variable d'environnement DOCKER_HOST.
加上 sudo 也是 报 同样 的 错误

racine des groupes
racine: docker racine
root est sous le groupe docker

Résolution du problème avec ceci:

  1. sudo usermod -aG docker $USER
  2. Déconnectez-vous et reconnectez-vous pour que votre appartenance à un groupe soit réévaluée.
  3. Vérifiez que vous pouvez exécuter des commandes docker sans sudo: docker info

Le DOCKER_HOST par défaut est unix: ///var/run/docker.sock. Si ce fichier n'existe pas ou si votre utilisateur actuel n'a pas accès à ce fichier, il essaie de se connecter à http + docker: // localhost
Essayer:
sudo chown /var/run/docker.sock
Ensuite, essayez à nouveau d'exécuter docker-compose up
A travaillé pour moi.

Avez-vous essayé sans sudo ? Vous ne devriez pas en avoir besoin et cela pourrait gâcher les choses dans votre cas. De plus, que voyez-vous lorsque vous exécutez docker info ?
Merci! Ça marche!

Mais s'il vous plaît Docker, ajoutez un avertissement correct!

J'ai reçu ce message lors de la copie de volumes depuis une machine de production, j'ai fini par owerdrite metadata.db intérieur de /var/lib/docker/volumes , puis il se bloque. Un correctif est si simple

docker system prune --volumes -f && rm /var/lib/docker/volumes/metadata.db && docker-compose up -d

Cela se produit souvent lorsque vous exécutez des commandes docker en tant que sudo alors que vous exécutez des commandes docker-compose sans cela.
Ce que vous devez faire est d'ajouter un utilisateur docker au groupe sudo. (ie. usermod -aG docker $ USER)
Ensuite, vous pouvez exécuter les deux commandes (docker et docker-compose) sans sudo.

J'ai eu exactement la même erreur. J'ai supprimé le conteneur (id) et redémarré le docker. Cela a résolu le problème pour moi. Il ne supprime aucune donnée déjà téléchargée.

Allez dans votre répertoire cvat et exécutez ce qui suit dans votre terminal:

  • sudo docker ps (affiche des informations sur vos dockers en cours d'exécution)
  • docker stop "Voici l'ID de votre conteneur" (par exemple, le mien était e6339eae0675)
  • sudo docker rm "Voici l'ID de votre conteneur"
  • sudo docker-compose up -d

J'ai le même problème, le travail de _sudo docker-compose up_ pour moi.

La solution pour moi était d'arrêter mon openvpn que j'utilisais.

Je ne suis pas sûr de ce qui s'est passé, j'ai redémarré mon PC et il a commencé à fonctionner !!

Cela marche.

les étapes suivantes ont résolu le problème pour moi.

supprimer le docker:
$ sudo apt-get remove docker docker-engine
réinstaller avec
curl -sSL https://get.docker.com/ | sh

ajouter un utilisateur à un groupe:
sudo usermod -aG docker user

Juste une note que vous devez exit le shell et vous reconnecter pour que la commande usermod colle.

Je viens de souffrir à nouveau du même problème qu'avant, et j'ai trouvé un peu de lumière à la fin ...
C'est lié à ce que docker-compose montre ce message étrange cachant le vrai problème.
J'ai juste essayé de créer une des images avec la construction de docker. puis il est apparu que certains fichiers essayant d'être inclus dans le cache n'avaient aucune autorisation de lecture et la construction a échoué.
Une fois les fichiers émis supprimés, il a recommencé à fonctionner sans problème.
Dans mon cas, le montage du répertoire actuel était le problème car le test génère des répertoires avec des utilisateurs root sur les hôtes
Donc, la prochaine fois, la construction a échoué car elle ne peut pas lire et commencer à échouer sans message clair de la construction de docker-compose.
Vous devez vérifier le test exécuté par l'utilisateur pour éviter le problème plus tard, mais j'espère que cela aidera les autres à trouver le vrai problème.

Cordialement

ajouter des utilisateurs réguliers au groupe Docker

# usermod -a -G docker user
# exit
$ exec $SHELL
$ docker-compose ps

J'ai corrigé cela en désactivant la variable CONTAINER_REGISTRY_BASE

$ sudo usermod -aG docker $ USER

J'ai trouvé que c'était une variable d'environnement manquante qui cassait les paramètres image: dans docker-compose.yml

¯_ (ツ) _ / ¯

les étapes suivantes ont résolu le problème pour moi.

supprimer le docker:
$ sudo apt-get remove docker docker-engine
réinstaller avec
curl -sSL https://get.docker.com/ | sh

ajouter un utilisateur à un groupe:
sudo usermod -aG docker user

Je vous remercie. La désinstallation, puis la réinstallation et la modification des autorisations des utilisateurs et la déconnexion et la reconnexion ont résolu le problème pour moi.

Aucune des solutions énumérées ci-dessus ne m'a résolu. D'autres idées?
ERREUR: Impossible de se connecter au démon Docker sur http + docker: // localhost - est-il en cours d'exécution?
S'il se trouve à un emplacement non standard, spécifiez l'URL avec la variable d'environnement DOCKER_HOST.

resolvi o problema com esse en référence:

sudo chown $USER:docker /var/run/docker.sock

Cela a réglé le problème pour moi.

J'ai tout fait sauf le lien symbolique vers docker-compose. Les commandes suivantes ont résolu mon problème

  1. Ajouter un utilisateur au groupe Docker (s'il n'est pas déjà ajouté)
    sudo usermod -aG docker $USER
  2. créer un lien symbolique vers / usr / bin à l'aide de la commande suivante
    $ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
  3. Redémarrer le service Docker
    $ sudo service docker restart

Dans mon cas, rien de ce qui précède n'a fonctionné

Il s'est avéré que dans mon fichier de composition j'avais un nom d'image camelCase ( eg imageName ), et cela causait Couldn't connect to Docker daemon at http+docker://localunixsocket . Changer cela en dash-case résolu le problème (très étrange).
Le service Docker fonctionnait bien, docker ps et info ne signalaient également aucun problème, le seul lancement de ce fichier de composition était le problème.

Ubuntu 18.04
docker 19.03.6
docker-compose 1.17.1 (compose file version 3)

sudo docker-compose up -d

Je viens de faire face à ce problème à nouveau et j'ai réalisé que je devais redémarrer Ubuntu après avoir ajouté l'utilisateur mu au groupe Docker

sudo usermod -aG utilisateur du menu fixe

Ceci par @ Kirill-Babkin a résolu le problème pour moi. J'avais un utilisateur nouvellement créé qui ne faisait pas partie du groupe docker. Merci.

Dans mon cas , mon docker-compose.yml était manquante définition var env sur image section

prod-image-generation:
    image: my-image:${BUILD_NUMBER}

J'ai perdu environ 30 minutes avec. Veuillez suggérer une erreur significative pour cela

La solution a défini une valeur pour le var

Seule l'exportation vide a fonctionné pour moi.

export DOCKER_HOST=

Nouvelle installation de Docker ici dans Ubuntu 18. En supposant que votre utilisateur soit déjà dans le groupe docker , installez simplement le service docker pour qu'il démarre automatiquement sudo systemctl enable docker puis redémarrez et voila sudo init 6

Avait le même problème.
Résolu sur mon système en écrivant "docker-compose build"

J'ai juste eu le même problème. J'ai trouvé que pour une raison quelconque, mon utilisateur n'a pas été ajouté au groupe de sécurité docker, à son tour ne m'autorisant pas sur le socket unix de docker et me donnant _ERROR: Impossible de se connecter au démon Docker à http + docker: // localunixsocket - est-il en cours d'exécution_ .

L'ajout du groupe docker à mon utilisateur actuel, puis la déconnexion et la reconnexion ont tout résolu pour moi:
sudo usermod -aG docker $USER

Suivez ceci, puis redémarrez la machine et exécutez docker-compose up --build 👍

spectacle

sudo usermod -aG docker $USER

Suivez ceci, puis redémarrez la machine et exécutez docker-compose up --build +1

Vous n'avez pas besoin de redémarrer, une simple reconnexion devrait suffire. Il l'a fait pour moi.

Je ne suis pas sûr de ce qui s'est passé, j'ai redémarré mon PC et il a commencé à fonctionner !! 🤓

C'est du travail. je ne sais pas pourquoi? haha

Nouvelle installation de Docker ici dans Ubuntu 18. En supposant que votre utilisateur soit déjà dans le groupe docker , installez simplement le service docker pour qu'il démarre automatiquement sudo systemctl enable docker puis redémarrez et voila sudo init 6

J'utilise Manjaro et cette solution fonctionne pour moi

merci @mikemix

J'ai essayé de nombreuses étapes basées sur l'erreur ci-dessous après avoir exécuté dockered .

can't initialize iptables table nat': Table does not exist (do you need to insmod?) Perhaps iptables or your kernel needs to be upgraded. (exit status 3)

Mais démarrer Terminal en tant qu'administrateur a fonctionné.
sudo service docker start
N'oubliez pas : le Terminal / Ubuntu sous Windows 10 doit être lancé en tant qu'administrateur

Sur Ubuntu 20.04, j'avais besoin d'exécuter

sudo chmod 777 /var/run/docker.sock

et il a commencé à fonctionner immédiatement.


⚠️ Modifier

Soyez prudent avec la commande ci-dessus

Cela donne à tout utilisateur de cette machine un accès complet à un fichier qui appartient normalement à root. Vous pouvez créer une faille de sécurité grave dans votre système de cette façon.
@Taranchul

sudo chmod 777 /var/run/docker.sock

Cela donne à tout utilisateur de cette machine un accès complet à un fichier qui appartient normalement à root. Vous pouvez créer une faille de sécurité grave dans votre système de cette façon. Voir https://stackoverflow.com/questions/47854463/docker-got-permission-denied- while- to - to - docker - socke pour des avertissements similaires.

Comme mentionné ici et dans le lien ci-dessus, sudo usermod -aG docker $USER (ou le nom d'utilisateur en question au lieu de $ USER) devrait faire l'affaire sans nuire aux mesures de sécurité du système.

@Taranchul Vous avez tout à fait raison! J'ai toujours utilisé sudo usermod -aG docker $USER . Mais malheureusement, sudo usermod -aG docker $USER ne semble plus fonctionner sur Ubuntu 20.04.

Des idées sur ce qui pourrait mal tourner?

Hélas, non. Vous êtes-vous reconnecté avec cet utilisateur (cela a fonctionné pour moi) ou avez-vous redémarré la machine? Je suppose que vous l'avez fait, mais mieux vaut être sûr.

Juste au cas où vous ou quelqu'un d'autre voudriez restaurer les autorisations d'origine de docker.sock , elles sont 660, au moins sur mon serveur Ubuntu 18.04.

@Taranchul Oui, j'ai essayé de me reconnecter et de redémarrer. Ne fonctionnait ni sur mon ordinateur portable ni sur mon poste de travail.

C'est peut-être un problème 20.04, puisque sa version finale est sortie hier. J'attends normalement le premier instantané de toute version de LTS dans le courant de l'été, qui, espérons-le, a résolu la plupart des problèmes de démarrage à ce moment-là.

Pourriez-vous le tester sur une version plus ancienne?

@Taranchul Cela semble être un problème avec 20.04. Cela fonctionne bien le 19.04

C'est une information utile, bien qu'elle ne vous aide pas beaucoup pour le moment. Alors, est-ce une option pour vous d'utiliser 18.04 jusqu'au 20.04 pour devenir plus mature dans ce domaine?

Un plan de loin: avez-vous vérifié que l'utilisateur a bien été ajouté au groupe de menus fixes?

@Taranchul Je veux dire que je pourrais utiliser 18.04, mais comme j'ai déjà tout migré vers 20.04, je ne le ferai probablement pas.

L'exécution de toutes les commandes docker avec sudo une option valide jusqu'à ce qu'elle soit corrigée?

Hélas, je ne sais pas grand-chose sur docker, donc je ne peux pas répondre à cette question.

J'ai trouvé ces instructions pour installer docker sur 20.04 qui le font un peu différemment: https://www.how2shout.com/how-to/how-to-install-docker-ce-on-ubuntu-20-04-lts- focal-fossa.html

Ils ajoutent le groupe docker avant d'ajouter l'utilisateur. C'est peut-être nécessaire le 20.04? (Je ne l'ai pas encore, donc je ne peux pas le tester moi-même.)

sudo groupadd docker
sudo gpasswd -a $USER docker
newgrp docker # or relogin to make the new group known to the system

@Taranchul Vous savez ce qui est bizarre .... J'ai couru sudo chmod 660 /var/run/docker.sock pour réinitialiser les autorisations et après le redémarrage, cela fonctionne toujours.

Puis-je considérer que le problème est résolu ou y a-t-il encore un risque de sécurité?
Peut-être ai-je oublié une étape lorsque j'ai tout installé hier ... et ce n'est en fait pas un problème avec Ubuntu 20.04?

Selon cette question sur askubuntu.com , docker avait à l'origine besoin de sudo pour démarrer, mais a obtenu une utilisabilité utilisateur non root avec la version 19.03. Dans les commentaires, quelqu'un mentionne que sans le groupe docker, la propriété de docker.sock était de root:root . Ce n'est qu'après avoir créé le groupe docker, y avoir ajouté l'utilisateur et redémarré le serveur docker qu'il est devenu root:docker . Donc, vérifier si le groupe existe ( modifier: et si c'est le cas, vérifier la propriété de docker.sock ) semble être une bonne idée. Également pour redémarrer votre instance de docker.

Faites attention à l'une des réponses les moins bien notées, celle qui parle des ACL et de la façon dont vous pouvez activer l'accès à docker.socks par la commande setfacl .

Enfin, il y a des avertissements concernant ce dernier ainsi que l'ajout d'un utilisateur au groupe docker, car cela donne à cet utilisateur des droits d'accès importants. 😎 Mais je pense toujours que ces méthodes sont préférables pour modifier les permissions du fichier.

En lisant votre dernier commentaire, sachez après avoir écrit ce qui précède, je dirais simplement être heureux et observer le tout. Il est difficile de dire si vous avez manqué quelque chose et que vous l'avez corrigé en essayant plusieurs solutions.

@Taranchul Super. Il fonctionne toujours après le redémarrage de Docker. Donc je suppose que c'était juste ma faute. Merci de votre aide!

@flulu Mon plaisir, et merci d'avoir pris mon premier avertissement aussi amical que prévu. :)

Sur Windows 10, il a été résolu en mettant à niveau vers WSL2 et en sauvegardant mon Ubuntu Distro sur WSL2.
https://docs.microsoft.com/en-us/windows/wsl/wsl2-install

Ce problème a été résolu lorsque j'ai redémarré l'ordinateur. :sourire:

Cela a résolu mon problème.

sudo usermod -aG docker myuser

Merci beaucoup @ Kirill-Babkin.

Résolu par:

sudo chmod 666 /var/run/docker.sock
sudo chmod 666 /var/run/docker.sock

Comme indiqué précédemment , cela peut ouvrir une faille de sécurité dans votre système. Avez-vous déjà essayé la solution usermod? Cela peut également poser des problèmes de sécurité, car cela donne à cet utilisateur un accès complet via docker, mais comparé au fait de donner à tous les utilisateurs l'accès à un fichier appartenant à la racine, cela semble être le moindre mal.

@ matteo-bombelli
J'ai eu le même problème.
Vous devez redémarrer le docker.
$ service docker restart
Je l'ai résolu avec ça.

C'était la solution et cela a fonctionné merci!

j'obtiens cette erreur sur ubunt 20.0.4

J'ai installé avec apt obtenir des sources apt. Existe-t-il une version plus récente dans un PPA?

J'ai fait
newgrp docker
et ça a marché

Je travaillais sur Lightsail. Le redémarrage de l'image l'a corrigé.

Essayez peut-être simplement d'ajouter votre utilisateur Linux au groupe: docker, puis reconnectez-vous.

Sur Ubuntu 20, docker s'exécute sous snap, comme vous pouvez le voir via 'systemctl status snap.docker.dockerd.service'

Il tente de démarrer avec le groupe /var/run/docker.sock défini sur 'docker', mais par défaut, ce groupe n'existe pas dans Ubuntu 20, même si vous sélectionnez le composant logiciel enfichable Docker dans l'installation.

Pour résoudre ce problème, créez le groupe, ajoutez votre utilisateur au groupe, puis redémarrez

sudo groupadd docker
sudo usermod -G docker $ USER
redémarrage sudo

Vous ne pouvez pas simplement vous déconnecter puis vous connecter, et pour autant que j'ai pu le dire, vous ne pouvez pas redémarrer snap.docker.dockerd ou snapd lui-même et faire changer les autorisations. Je ne sais pas comment l'amener à faire la bonne chose sans redémarrer, donc si vous le savez, veuillez m'en informer.

Je suis sur 20.04 et j'ai eu le même problème et je pourrais faire sudo docker info mais pas en tant qu'utilisateur régulier. J'étais dans le groupe docker d'avant et je peux toujours parcourir mon site WordPress à 127.0.0.1. J'ai dû lancer newgrp docker pour le réparer. Très bizarre car tout ce que j'ai fait est de verrouiller ce poste de travail depuis que j'ai installé le docker il y a 2 jours. Peut-être qu'une mise à jour a cassé quelque chose?

newgrp docker fonctionne pour moi

La configuration de DOCKER_HOST fonctionné manuellement pour moi

  1. Trouvez le chemin vers votre fichier chaussette: (en utilisant soit sudo service docker status ou ps -aef | grep docker )
  2. exporter DOCKER_HOST=unix://<path to sock file>

Dans mon cas, le fichier chaussette était situé à /run/containerd/containerd.sock
donc j'ai dû exécuter export DOCKER_HOST=unix:///run/containerd/containerd.sock

Pour mon cas - Après le redémarrage du cluster, le problème est résolu.

Sur Ubuntu 20, docker s'exécute sous snap, comme vous pouvez le voir via 'systemctl status snap.docker.dockerd.service'

Il tente de démarrer avec le groupe /var/run/docker.sock défini sur 'docker', mais par défaut, ce groupe n'existe pas dans Ubuntu 20, même si vous sélectionnez le composant logiciel enfichable Docker dans l'installation.

Pour résoudre ce problème, créez le groupe, ajoutez votre utilisateur au groupe, puis redémarrez

sudo groupadd docker
sudo usermod -G docker $ USER
redémarrage sudo

Vous ne pouvez pas simplement vous déconnecter puis vous connecter, et pour autant que j'ai pu le dire, vous ne pouvez pas redémarrer snap.docker.dockerd ou snapd lui-même et faire changer les autorisations. Je ne sais pas comment l'amener à faire la bonne chose sans redémarrer, donc si vous le savez, veuillez m'en informer.

Je crois que vous voulez dire sudo usermod -aG docker $ USER. L'exécution sans -a provoquera "Si l'utilisateur est actuellement membre d'un groupe qui n'est pas répertorié, l'utilisateur sera supprimé du groupe."

Vous ne pouvez pas simplement vous déconnecter puis vous connecter, et pour autant que j'ai pu le dire, vous ne pouvez pas redémarrer snap.docker.dockerd ou snapd lui-même et faire changer les autorisations. Je ne sais pas comment l'amener à faire la bonne chose sans redémarrer, donc si vous le savez, veuillez m'en informer.

Une reconnexion devrait suffire pour rendre le nouveau groupe actif pour cet utilisateur.

Cela m'est venu aussi. J'avais besoin de me déconnecter de mon client nordvpn pour une raison quelconque.

sudo docker-compose up -d fonctionne !!!

Avez-vous essayé sans sudo ? Vous ne devriez pas en avoir besoin et cela pourrait gâcher les choses dans votre cas. De plus, que voyez-vous lorsque vous exécutez docker info ?

ura putain de génie. tu le sais ? Merci beaucoup mon frère. tu m'as sauvé de l'enfer.

Je ne sais pas exactement pourquoi, mais dans mon cas, j'avais un sous-module qui n'a pas été vérifié. L'exécution de git submodule update --init , puis la réexécution de docker-compose build résolu le problème pour moi

Je ne suis pas sûr de ce qui s'est passé, j'ai redémarré mon PC et il a commencé à fonctionner !!

Pareil ici. 😃

J'ai juste eu le même problème. J'ai trouvé que pour une raison quelconque, mon utilisateur n'a pas été ajouté au groupe de sécurité docker, à son tour ne m'autorisant pas sur le socket unix de docker et me donnant _ERROR: Impossible de se connecter au démon Docker à http + docker: // localunixsocket - est-il en cours d'exécution_ .

L'ajout du groupe docker à mon utilisateur actuel, puis la déconnexion et la reconnexion ont tout résolu pour moi:
sudo usermod -aG docker $USER

aussi, n'oubliez pas d'exécuter newgrp docker pour accéder à ce groupe dans votre shell actuel. réf https://stackoverflow.com/a/48569858/2040522

J'ai juste eu le même problème. J'ai trouvé que pour une raison quelconque, mon utilisateur n'a pas été ajouté au groupe de sécurité docker, à son tour ne m'autorisant pas sur le socket unix de docker et me donnant _ERROR: Impossible de se connecter au démon Docker à http + docker: // localunixsocket - est-il en cours d'exécution_ .

L'ajout du groupe docker à mon utilisateur actuel, puis la déconnexion et la reconnexion ont tout résolu pour moi:
sudo usermod -aG docker $USER

Cela fonctionne parfaitement. Vous devez vous reconnecter pour voir les résultats.

sudo usermod -aG docker $USER

Cela fonctionne parfaitement. Vous devez vous reconnecter pour voir les résultats.

Sinon, newgrp docker devrait le faire sans se reconnecter.

sudo chmod 666 /var/run/docker.sock

Comme indiqué précédemment , cela peut ouvrir une faille de sécurité dans votre système. Avez-vous déjà essayé la solution usermod? Cela peut également poser des problèmes de sécurité, car cela donne à cet utilisateur un accès complet via docker, mais comparé au fait de donner à tous les utilisateurs l'accès à un fichier appartenant à la racine, cela semble être le moindre mal.

Vous avez raison, mais c'est très important pour les devops, je suis juste un développeur et je corrige cela en utilisant cette commande,
merci spécial à @ shqear93

C'est douloureux et je suis incrédule que le problème ait été résolu il y a trois ans sans réponse significative de Docker. Ce problème github ne devrait pas être dans votre ensemble de fonctionnalités. Quel est le plan pour corriger cela? Ne soumettez pas cela aux utilisateurs qui ne comprennent pas le fonctionnement des groupes, des utilisateurs et des sessions, ou à d'autres logiciels qui fonctionnent comme ils le font. _Vous_ avez choisi cette façon compliquée de faire les choses.

J'ai dû _rémarrer_ mon ordinateur au lieu de me déconnecter / me connecter pour que sudo usermod -aG docker my_user prenne effet. Quelques preuves que cela arrive à d'autres ici: https://unix.stackexchange.com/questions/277240/usermod-ag-group-user-not-work.

J'ai juste eu le même problème. J'ai trouvé que pour une raison quelconque, mon utilisateur n'a pas été ajouté au groupe de sécurité docker, à son tour ne m'autorisant pas sur le socket unix de docker et me donnant _ERROR: Impossible de se connecter au démon Docker à http + docker: // localunixsocket - est-il en cours d'exécution_ .
L'ajout du groupe docker à mon utilisateur actuel, puis la déconnexion et la reconnexion ont tout résolu pour moi:
sudo usermod -aG docker $USER

aussi, n'oubliez pas d'exécuter newgrp docker pour accéder à ce groupe dans votre shell actuel. réf https://stackoverflow.com/a/48569858/2040522

A parfaitement fonctionné pour moi. Merci!

Sur Ubuntu 16.04, cela a fonctionné pour moi:
sudo service docker start && docker-compose up -d

cela a fonctionné pour moi!

J'ai juste eu le même problème. J'ai trouvé que pour une raison quelconque, mon utilisateur n'a pas été ajouté au groupe de sécurité docker, à son tour ne m'autorisant pas sur le socket unix de docker et me donnant _ERROR: Impossible de se connecter au démon Docker à http + docker: // localunixsocket - est-il en cours d'exécution_ .
L'ajout du groupe docker à mon utilisateur actuel, puis la déconnexion et la reconnexion ont tout résolu pour moi:
sudo usermod -aG docker $USER

aussi, n'oubliez pas d'exécuter newgrp docker pour accéder à ce groupe dans votre shell actuel. réf https://stackoverflow.com/a/48569858/2040522

Cela a résolu mon problème, merci !!!

Je ne sais pas pourquoi, mais ce qui a résolu le problème pour moi a été de supprimer la ligne suivante de mon fichier docker-compose .env :

DOCKER_HOST=tcp://localhost:2375

Résolu par:

sudo chmod 666 /var/run/docker.sock

Merci. Résolu dans Ubuntu 20.0.4 LTS

Je viens d'essayer de jouer avec les autorisations et je viens de faire:

build sudo docker-compose

Et c'était parti pour les courses.
Au cœur de celui-ci, un problème d'autorisations, si le service docker est en cours d'exécution, le groupe est attribué, les autorisations de socket sont toutes définies et ne le voient toujours pas fonctionner. Faites-le simplement avec sudo. A travaillé pour moi, j'ai de meilleures choses à faire.

une solution pour ubuntu 20.04?

une solution pour ubuntu 20.04?

Avez-vous essayé la solution publiée auparavant? (https://github.com/docker/compose/issues/4181#issuecomment-629748049)

En bref (avec des suggestions ultérieures ajoutées):

sudo groupadd docker
sudo usermod -aG docker $ USER
docker newgrp

Si "newgrp docker" ne suffit pas, un redémarrage peut être nécessaire (il y a des commentaires contradictoires à ce sujet).

Cette page vous a été utile?
0 / 5 - 0 notes