![无法运行 docker hello-world:找不到设备的安装点](https://linux22.com/image/79522/%E6%97%A0%E6%B3%95%E8%BF%90%E8%A1%8C%20docker%20hello-world%EF%BC%9A%E6%89%BE%E4%B8%8D%E5%88%B0%E8%AE%BE%E5%A4%87%E7%9A%84%E5%AE%89%E8%A3%85%E7%82%B9.png)
码头工人新手。
从软件管理工具安装了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
”)中出现错误消息,并且没有重新启动(因此升级内核)。
我调试问题所采取的步骤是
- 检查日志:
journalctl -xn | less
.并没有真正包含太多附加信息 - 停止 Docker 守护进程 (
/etc/init.d/docker stop
)。 /etc/docker/daemon.json
添加唯一内容所在的文件{"debug": true}
- 尝试重新启动 docker 守护进程却发现它失败了
- 检查日志,其中现在会填充更多信息
这些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 问题的解决方法可以应用在这种情况下,其中唯一似乎有效的命令是
/etc/init.d/docker stop
cgroupfs-mount
/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"
但其中一半(blkio
、cpuset
)消失了,更重要的是,下一行写着:
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 的东西就解决了这个问题。无需重新启动。