无法在Docker中使用“umount”卸载设备

我不知道为什么,但是,卸载不在docker工作。

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

让我再分享一件事情,就是在真机loop3/mnt/loop3下创buildloop3 。 这对我来说是最让人意想不到的事情,因为承诺纯粹的虚拟环境。

为什么? 任何解决scheme

场景 – :我创build了docker ubuntu:13.04来创build交叉编译环境。

Docker 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 

Docker信息

 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 

我find了解决办法:

在默认docker运行它不是我们所期望的真正的操作系统。 它没有访问设备的权限。 所以我们必须在运行--privileged时候使用--privileged

默认情况下,Docker容器是"unprivileged" ,不能在Docker容器中运行Docker守护进程。 这是因为默认情况下容器不允许访问任何设备,但是"privileged"容器可以访问所有设备。

当运营商执行docker run --privileged ,Docker将允许访问主机上的所有设备,并在AppArmor中设置一些configuration,以允许容器几乎与主机上的容器外的进程一样访问主机。