无法运行 docker hello-world:找不到设备的安装点

无法运行 docker hello-world:找不到设备的安装点

码头工人新手。

从软件管理工具安装了docker 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,重启docker服务。我不再看到以下错误:

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 有关...但我对这项技术一无所知(还)...

答案1

原来我需要安装cgroup-lite.这是在黑暗中拍摄的,但我遵循了这个回答

答案2

我将在这里为 2020 年在 Debian 上看到此问题的应用程序人员添加另一个答案,因为在谷歌搜索错误字符串“未找到设备的安装点”时找到的任何搜索结果中都没有出现我对这个问题的解决方案。

背景:

  • 在 Google 云平台上运行的 Debian 8.11
  • 5 周前安装了一个可用的 Docker,并运行了两个容器

突然意识到有什么东西导致了容器崩溃。我能想到的唯一可能的原因是我删除了主机上的一个父文件夹,该文件夹的子文件夹被映射为卷。另一个原因可能是安装了额外的物理设备。

无论如何,最终结果是尝试启动任何 docker 容器会导致问题(“ 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-acme-org 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-acme-org 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-acme-org 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-acme-org 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-acme-org dockerd[9022]: time="2020-01-13T20:17:15.964750643Z" level=warning msg="mountpoint for pids not found"
Jan 13 20:17:15 dev-acme-org dockerd[9022]: time="2020-01-13T20:17:15.980250151Z" level=debug msg="Cleaning up old mountid : start."
Jan 13 20:17:15 dev-acme-org 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-acme-org 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-acme-org 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-acme-org dockerd[9775]: time="2020-01-13T20:24:42.258937091Z" level=warning msg="mountpoint for pids not found"

但其中一半(blkiocpuset)消失了,更重要的是,下一行写着:

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

最后

Unit docker.socket has finished starting up.

所以,基本上,重新安装 cgroup 的东西就解决了这个问题。无需重新启动。

相关内容