無法執行 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 有關……但我對這項技術一無所知(還)……
原來我需要安裝
cgroup-lite
. 這是在黑暗中拍攝的,但我遵循了這個答案
我將在此處為 2020 年在 Debian 上看到此問題的人們添加另一個答案,因為在Google搜尋錯誤字元串“未找到設備的掛載點”時發現的任何搜尋命中均不存在我對這個問題的解決方案。
背景:
- 在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-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 問題,其中唯一似乎有效的命令是
/etc/init.d/docker stop
cgroupfs-mount
/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 的東西解決了這個問題。無需重新啟動。