Не удается запустить докер hello-world: точка монтирования для устройств не найдена

12

Новое в докере.

Установлен докер из инструмента управления программным обеспечением в mint 17.

Когда я бегу, docker run hello-worldя получаю:

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

Когда я смотрю журналы службы ( /var/log/upstart/docker.log), я вижу:

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 

: версия докера

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

: информация о докере

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

Обновить:

Установил sudo apt-get install aufs-tools, перезапустил докер сервис. Я больше не вижу следующую ошибку:

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

Тем не менее, в журналах я вижу, что при запуске docker предупреждает меня о точке монтирования памяти:

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.         

У меня есть ощущение, что это связано с cgroup ... но я ничего не знаю об этой технологии (пока) ...

HBA
источник
Похоже, ваш вопрос упал на пол и разбился на части. Пожалуйста, соберите это для нас.
Скотт
@ Скотт - извините ... надеюсь, что теперь лучше ... спасибо, что указали на это
hba

Ответы:

23

Оказалось, что мне нужно было установить cgroup-lite. Это был выстрел в темноте, но я последовал этому ответу

HBA
источник
Знаете, я в какой-то момент узнал это сам, а потом забыл. Теперь нашел ваш вопрос, когда я снова столкнулся с ним и вспомнил (и проголосовал).
0xC0000022L
В Debian соответствующий пакет называется cgroupfs-mount
Bass
1

Я добавлю еще один ответ для людей, видящих это в 2020 году в Debian, поскольку мое решение этой проблемы не присутствовало ни в одном из поисковых запросов, найденных при поиске в строке ошибки «точка монтирования устройств не найдена».

Фон:

  • Debian 8.11 работает на Google Cloud Platform
  • Работал ли Docker 5 недель назад с двумя работающими контейнерами

Внезапно понял, что что-то заставило контейнеры разбиться. Единственная отдаленно вероятная причина, по которой я смог придумать, - это то, что я удалил родительскую папку на узле, подпапка которого была сопоставлена ​​как том. Еще одной причиной может быть установка дополнительного физического устройства.

Конечным результатом в любом случае было то, что попытка запустить любой докер-контейнер привела к появлению сообщения об ошибке в вопросе (" mountpoint for devices not found"), и перезагрузка (и, следовательно, обновление ядра) не произошла.

Шаги, которые я предпринял для устранения проблемы, были

  1. Проверьте журналы: journalctl -xn | less. На самом деле не содержит слишком много дополнительной информации
  2. Остановите демон Docker ( /etc/init.d/docker stop).
  3. Добавьте файл, /etc/docker/daemon.jsonгде единственным содержанием был{"debug": true}
  4. Попробуйте перезапустить демон docker, чтобы увидеть, что он не работает
  5. Изучите журналы, которые теперь будут заполнены намного больше информации

Эти cgroupсвязанные ошибки привели к ответу:

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

ОК, кое-что по поводу cgroupsи монтажа. Это привело меня к обходному пути для другой проблемы cgroups, которая могла быть применена в этом случае, из которых единственные команды, которые, казалось, имели эффект, были

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

Теперь, после повторного запуска Docker, журналы все еще содержали несколько строк ошибок, связанных с 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"

Но половина из них ( blkio, cpuset) исчезла, и, что более важно, следующая строка гласила:

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

И наконец

Unit docker.socket has finished starting up.

Так что, в основном, перемонтирование материала cgroup решило проблему. Нет необходимости перезагружаться.

oligofren
источник