Linux-Mint

無法執行 docker hello-world:未找到設備的掛載點

  • January 14, 2020

碼頭工人新手。

從軟體管理工具中安裝了 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”)中的錯誤消息,並且沒有重新啟動(因此升級核心)。

我為調試問題所採取的步驟是

  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 的東西解決了這個問題。無需重新啟動。

引用自:https://unix.stackexchange.com/questions/249425