Impossible d'exécuter Docker Hello-World: point de montage pour les périphériques introuvable

12

Nouveau sur docker.

Docker installé à partir de l'outil de gestion de logiciels dans mint 17.

Quand je cours, docker run hello-worldje reçois:

FATA[0000] Error response from daemon: Cannot start container a6bcc1ede2c38cb6b020cf5ab35ebd51b64535af57fa44f5966c37bdf89c8781: [8] System error: mountpoint for devices not found 

Lorsque je regarde les journaux de service ( /var/log/upstart/docker.log), je vois:

ERRO[0617] Couldn't run auplink before unmount: exec: "auplink": executable file not found in $PATH 
ERRO[0617] Couldn't run auplink before unmount: exec: "auplink": executable file not found in $PATH 

: version docker

Client version: 1.6.2
Client API version: 1.18
Go version (client): go1.2.1
Git commit (client): 7c8fca2
OS/Arch (client): linux/amd64
Server version: 1.6.2
Server API version: 1.18
Go version (server): go1.2.1
Git commit (server): 7c8fca2
OS/Arch (server): linux/amd64

: info docker

Containers: 2
Images: 1
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 5
 Dirperm1 Supported: false
Execution Driver: native-0.2
Kernel Version: 3.13.0-24-generic
Operating System: Ubuntu 14.04.3 LTS
CPUs: 8
Total Memory: 15.6 GiB
Name: DWDEV-HOME-HBABAI
ID: K4GX:DTV6:547V:U3BO:YEOA:WVNU:NZEZ:L3GG:4W7U:IXNS:X3QK:5PVR
WARNING: No memory limit support
WARNING: No swap limit support

Mise à jour:

sudo apt-get install aufs-toolsService Docker installé et redémarré. Je ne vois plus l'erreur suivante:

ERRO[0617] Couldn't run auplink before unmount: exec: "auplink": executable file not found in $PATH 

Cependant, dans les journaux, je vois que lorsque Docker démarre, il m'avertit du point de montage de la mémoire:

INFO[0000] -job init_networkdriver() = OK (0)           
/var/run/docker.sock is up
WARN[0000] mountpoint for memory not found              
INFO[0000] Loading containers: start.         

J'ai le sentiment que cela a à voir avec cgroup ... mais je ne connais pas encore cette technologie ...

hba
la source
On dirait que votre question est tombée par terre et s'est brisée en morceaux. Veuillez le mettre ensemble pour nous.
Scott
@Scott - désolé ... j'espère que c'est mieux maintenant ... merci de l'avoir signalé
hba

Réponses:

23

Il s'est avéré que je devais installer cgroup-lite. C'était un coup dans le noir mais j'ai suivi cette réponse

hba
la source
Vous savez, j'avais à un moment donné découvert cela par moi-même, puis je l'avais oublié. Maintenant, j'ai trouvé votre question quand je l'ai rencontrée à nouveau et je me suis souvenue (et j'ai voté).
0xC0000022L
Dans Debian , le paquet correspondant s'appelle cgroupfs-mount
Bass
1

J'ajouterai une autre réponse ici pour les personnes qui voient cela en 2020 sur Debian, car ma résolution de ce problème n'était présente dans aucun des résultats de recherche trouvés lors de la recherche sur la chaîne d'erreur "point de montage pour les périphériques non trouvés".

Contexte:

  • Debian 8.11 fonctionnant sur Google Cloud Platform
  • Un Docker fonctionnel a été installé il y a 5 semaines avec deux conteneurs en cours d'exécution

Soudain, j'ai réalisé que quelque chose avait fait s'écraser les conteneurs. La seule cause à distance probable que j'ai pu trouver était que j'avais supprimé un dossier parent sur l'hôte dont un sous-dossier était mappé en tant que volume. Une autre raison pourrait être le montage d'un appareil physique supplémentaire.

Dans tous les cas, le résultat final était que la tentative de démarrage de n'importe quel conteneur Docker entraînait le message d'erreur vu dans la question (" mountpoint for devices not found") et aucun redémarrage (et donc une mise à niveau du noyau) n'avait eu lieu.

Les étapes que j'ai prises pour déboguer le problème étaient

  1. Inspectez les journaux: journalctl -xn | less. Ne contenait pas vraiment trop d'informations supplémentaires
  2. Arrêtez le démon Docker ( /etc/init.d/docker stop).
  3. Ajouter un fichier /etc/docker/daemon.jsondont le contenu unique était{"debug": true}
  4. Essayez de redémarrer le démon docker uniquement pour le voir échouer
  5. Inspectez les journaux, qui seraient maintenant remplis de beaucoup plus d'informations

Ces cgrouperreurs liées ont conduit à la réponse:

Jan 13 20:17:15 dev-diffia-no dockerd[9022]: time="2020-01-13T20:17:15.964631675Z" level=warning msg="Your kernel does not support cgroup memory limit"
Jan 13 20:17:15 dev-diffia-no dockerd[9022]: time="2020-01-13T20:17:15.964654637Z" level=warning msg="Unable to find cpu cgroup in mounts"
Jan 13 20:17:15 dev-diffia-no dockerd[9022]: time="2020-01-13T20:17:15.964667575Z" level=warning msg="Unable to find blkio cgroup in mounts"
Jan 13 20:17:15 dev-diffia-no dockerd[9022]: time="2020-01-13T20:17:15.964680057Z" level=warning msg="Unable to find cpuset cgroup in mounts"
Jan 13 20:17:15 dev-diffia-no dockerd[9022]: time="2020-01-13T20:17:15.964750643Z" level=warning msg="mountpoint for pids not found"
Jan 13 20:17:15 dev-diffia-no dockerd[9022]: time="2020-01-13T20:17:15.980250151Z" level=debug msg="Cleaning up old mountid : start."
Jan 13 20:17:15 dev-diffia-no dockerd[9022]: Error starting daemon: Devices cgroup isn't mounted

OK, quelque chose cgroupset le montage. Cela m'a amené à une solution de contournement pour un autre problème de groupes de contrôle pouvant être appliqué dans ce cas, dont les seules commandes qui semblaient avoir un effet étaient

  1. /etc/init.d/docker stop
  2. cgroupfs-mount
  3. /etc/init.d/docker start

Maintenant, au redémarrage de Docker, les journaux contenaient toujours quelques lignes d'erreurs liées à cgroup:

Jan 13 20:24:42 dev-diffia-no dockerd[9775]: time="2020-01-13T20:24:42.258571633Z" level=warning msg="Your kernel does not support cgroup memory limit"
Jan 13 20:24:42 dev-diffia-no dockerd[9775]: time="2020-01-13T20:24:42.258591020Z" level=warning msg="Unable to find cpu cgroup in mounts"
Jan 13 20:24:42 dev-diffia-no dockerd[9775]: time="2020-01-13T20:24:42.258937091Z" level=warning msg="mountpoint for pids not found"

Mais la moitié d'entre eux ( blkio, cpuset) étaient partis, et plus important encore, la ligne suivante disait:

Jan 13 20:24:42 dev-diffia-no dockerd[9775]: time="2020-01-13T20:24:42.259420798Z" level=info msg="Loading containers: start."

et enfin

Unit docker.socket has finished starting up.

Donc, fondamentalement, le remontage des éléments cgroup a résolu le problème. Pas besoin de redémarrer.

oligofren
la source