2014-07-07 49 views
7

我不知道爲什麼,但是,umount在docker中不起作用。無法在Docker中使用「umount」卸載設備

"umount: loop3/: must be superuser to umount"

讓我分享一件事就是 它的真機/mnt/loop3下創建loop3。這對我來說是最令人意想不到的事情,因爲承諾純粹的虛擬環境。

爲什麼?任何解決方案

場景 - :我創建docker ubuntu:13.04創建交叉編譯環境。

碼頭工人的Linux機器(Ubuntu的)

Linux 626089eadfeb 3.10.45-1-lts #1 SMP Fri Jun 27 06:44:23 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux 

Linux計算機:(Arch Linux的)

Linux localhost 3.10.45-1-lts #1 SMP Fri Jun 27 06:44:23 UTC 2014 x86_64 GNU/Linux 

泊塢窗信息

Client version: 1.0.1 
Client API version: 1.12 
Go version (client): go1.3 
Git commit (client): 990021a 
Server version: 1.0.1 
Server API version: 1.12 
Go version (server): go1.3 
Git commit (server): 990021a 
+0

看起來你已經得到了關於[你報告的github問題]的答案(https://github.com/dotcloud/docker/issues/6879#issuecomment-48215492)。之後的建議幫助了我。 – Dharmit

+0

雅@DharmitShah但它還沒有解決。事實上二級交叉編譯並不完美。在所有設備中的'mount'中創建問題。 – Merom

回答

10

我找到了解決辦法:

在默認碼頭運行它'並不是我們所期望的真正的操作系統。它沒有訪問設備的權限。所以我們必須使用--privileged運行碼頭時。

默認情況下,Docker容器爲"unprivileged",例如,不能在Docker容器內運行Docker守護程序。這是因爲默認情況下容器不允許訪問任何設備,但允許容器訪問所有設備。

當操作者執行docker run --privileged,多克爾將使訪問到主機上的所有設備以及設置在AppArmor的一些配置,以允許所述容器幾乎所有到主機相同的訪問權限的過程運行在外部容器主辦。