首页 > 解决方案 > 在容器中绑定挂载 /proc 或 /dev 导致操作不允许错误

问题描述

我正在尝试将挂载 /proc 或 /dev 从主机绑定到 ubuntu 16.04 上的 linux 容器,但出现不允许操作错误。

我使用runc作为我的容器运行时,这里是 runc config.json 中的挂载部分。

   {
        "destination": "/test-proc",
        "options": [
            "rbind",
            "ro"
        ],
        "source": "/proc",
        "type": "bind"
    },

我同时打开了 pid 命名空间、用户命名空间和挂载命名空间。

这是 strace 输出:

22435 安装(“/proc”,“/sompath/test-proc”,0xc42001be56,MS_RDONLY|MS_BIND|MS_REC,NULL)= 0

22435 mount("/proc", "/somepath/test-proc", 0xc42001be66, MS_RDONLY|MS_REMOUNT|MS_BIND|MS_REC, NULL) = -1 EPERM (不允许操作)

此问题仅发生在 Ubuntu 上,而不会发生在其他 linux 发行版上,例如 Alinux 或 Raspbian。

有谁知道可能导致这种情况的原因是什么?

标签: ubuntucontainersmountrunc

解决方案


推荐阅读