problème avec docker

32

J'essaie d'apprendre sur "Docker" dans Ubuntu 15.04.

Lorsque je donne une commande utilisant docker comme "docker run image", l'erreur suivante apparaît:

FATA[0000] Post http:///var/run/docker.sock/v1.17/containers/create: dial unix /var/run/docker.sock: no such file or directory. Are you trying to connect to a TLS-enabled daemon without TLS?

Je ne comprends pas ce que ça veut dire.

Rishi Kant
la source
5
Je recevais ce message d'erreur et ensuite démarré le démon avec sudo service docker start. Ensuite, j'ai pu courir sudo docker run hello-world. Bonne chance.
shellter

Réponses:

31

Il y a deux raisons possibles pour lesquelles vous obtenez cette erreur:

  1. Le démon Docker n'est pas en cours d'exécution. Vous pouvez vérifier cela avec sudo /etc/init.d/docker status.

  2. Le démon Docker est en cours d'exécution, mais il est configuré pour ne pas écouter /var/run/docker.sock. Vous pouvez vous enregistrer /etc/default/dockersi une -Hoption est spécifiée dans DOCKER_OPTS.

Andreas Veithen
la source
3
+1 Je devais juste utiliser $ sudo service docker statusdepuis que je suis$ sudo /etc/init.d/docker status * Docker is managed via upstart, try using service docker status
IsaacS
Après avoir couru sudo /etc/init.d/docker status, j'ai reconnu que le service de menu fixe était en panne. Je cours sudo /etc/init.d/docker start, puis j'ai pu exécuter mon image de menu fixe.
Halil
Il semble que / etc / default / docker ne soit plus utile sur systemd (Ubuntu 16.04+). BTW sur systemd serait le moyen canonique de vérifier l’état du démon sudo systemctl status docker.
Pablo Un
38

Après avoir installé Docker, vous êtes invité à ajouter votre utilisateur au groupe de dockers. Il suffit de lancer la commande affichée:

sudo usermod -aG docker $USER

Vous devrez fermer votre session et vous reconnecter pour que les modifications prennent effet.

Samoht
la source
probablement le plus simple. Je ne sais pas si cela fonctionne, bien que (utilisé @ decebal) répondre.
Yair Daon
Je n'ai pas eu cette invite. Je suis sur Raspberry Pi.
IgorGanapolsky le
Pour vous ajouter ultérieurement au groupe de dockers, exécutez sudo usermod -a -G docker <user>. Voir ici pour plus d'informations.
Hugh W
3
Accent mis sur "fermer votre session" - merci!
Dolan Antenucci
Sur Ubuntu 18.04 avec Gnome, je devais redémarrer le système pour que cela fonctionne. Se déconnecter et revenir ne fonctionnait pas: /
Zoltán
15

Essayez de redémarrer votre système d'exploitation après l'installation de docker pour appliquer des autorisations de groupe, si votre utilisateur a rejoint le groupe de docker.

Mise à jour:

Lors de l'installation de Docker sur Ubuntu 14.04, l'installateur recommande ce que votre utilisateur ajoute au groupe Docker pour accéder au service Docker.

Regarder

Le démon docker se lie à un socket Unix au lieu d’un port TCP. Par défaut, ce socket Unix appartient à l'utilisateur root et les autres utilisateurs peuvent y accéder avec sudo. Pour cette raison, le démon docker s'exécute toujours en tant qu'utilisateur root. Pour éviter de devoir utiliser sudo lorsque vous utilisez la commande docker, créez un groupe Unix appelé docker et ajoutez-lui des utilisateurs. Lorsque le démon docker démarre, il rend la propriété du socket Unix accessible en lecture / écriture au groupe de docker.

source: https://docs.docker.com/installation/ubuntulinux/#create-a-docker-group

MURATSPLAT
la source
2
Vous devriez expliquer pourquoi cela aidera.
Guntbert
1
@guntbert J'ai mis à jour ma réponse ..
MURATSPLAT
@MURATSPLAT, qbi, gunbert Merci je trouve la solution
rishi kant
Pour que le changement de permission de groupe ait un effet. Vous n'avez pas besoin de redémarrer. se déconnecter suffit.
Tim Wu
@TimWu Sur Ubuntu 18.04 avec Gnome, je devais redémarrer le système - il était tout simplement impossible de se connecter et de revenir en arrière: /
Zoltán
10

essayez d'utiliser sudo docker imagespour vérifier s'il y a un conteneur appelé <image>dans votre hôte.

running docker run <image>lancera un conteneur appelé <image>sur votre ordinateur hôte. Si votre ordinateur hôte ne possède pas ce conteneur, docker extraira automatiquement un conteneur nommé '' à partir du hub de référentiel, de la même manière que vous le lancez docker pull <image>. Ensuite, s'il ne peut toujours pas trouver une image appelée "", ce message d'erreur s'affiche.

vous pouvez essayer de remplacer pour hello-worldvoir si le menu fixe fonctionne sur votre ordinateur.

sudo docker run hello-world

En outre, vous devriez vérifier si vous devriez utiliser sudo.

realhu
la source
2
Si le problème était que l'OP n'utilisait pas sudo, le message d'erreur aurait été "autorisation refusée" au lieu de "aucun fichier ou répertoire de ce type".
Andreas Veithen
1
Oui, vous avez raison. Je l'ai essayé, si l'utilisateur n'a pas la permission, le message d'erreur serait:FATA[0000] Get http:///var/run/docker.sock/v1.18/containers/json: dial unix /var/run/docker.sock: permission denied. Are you trying to connect to a TLS-enabled daemon without TLS?
realhu
2
essayer d'accorder des autorisationssudo usermod -a -G docker ec2-user
AB
4

J'ai trouvé cet article utile: https://docs.docker.com/articles/systemd/ ; Je l'ai exécuté sur plusieurs environnements et j'ai travaillé, j'espère que cela vous aidera aussi

Decebal
la source
Les réponses en lien uniquement ne sont pas considérées comme acceptables. Veuillez préciser votre réponse pour qu'elle soit complète.
Flimzy
2
Bien que cela puisse théoriquement répondre à la question, il serait préférable d’inclure ici les parties essentielles de la réponse et de fournir le lien à titre de référence.
Mitch
1
Ce lien systemd semble être mort. Voici un autre lien docs.docker.com/engine/admin/systemd
wsams
2

J'ai reçu un message similaire en essayant de tirer une image. Je viens de faire le sudo suet j'ai ensuite pu tirer l'image avec succès.

Omar Ahmed
la source
2
Bienvenue sur Ask Ubuntu! Je recommande de modifier cette réponse pour la développer avec des détails spécifiques sur la manière de procéder. (Voir aussi Comment rédiger une bonne réponse? Pour des conseils généraux sur les types de réponses considérés comme les plus utiles sur Ask Ubuntu.) Sachez cependant que l'exécution de Docker en tant que superutilisateur a déjà été suggérée à plusieurs reprises.
David Foerster
J'ai la solution de mon problème.
Rishi Kant