You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么Docker容器无法挂载/sys目录,不使用--privileged如何实现挂载

挂载失败原因

Docker默认对容器的系统访问权限做了多层安全限制:

  1. 默认情况下容器内的/sys目录是以只读隔离状态挂载的,/sys/firmware作为暴露宿主机底层硬件、固件敏感信息的路径,属于默认禁止直接从宿主机挂载的路径范畴
  2. 默认的seccomp安全策略、Linux Capabilities权限配置都拦截了普通容器对/sys/firmware的挂载请求,该限制和镜像类型无关,所以你用官方ubuntu:latest也能复现问题
非特权模式实现挂载的方案

不需要全开--privileged权限,有两个更安全的可选方案:

  • 方案1:放宽对应权限限制
    启动容器时仅添加必要的权限参数即可:
docker run \
  --cap-add SYS_ADMIN \
  --security-opt seccomp=unconfined \
  -v /sys/firmware:/sys/firmware:ro \
  <你的镜像名>

末尾加:ro配置只读挂载可以进一步降低安全风险,避免容器内修改宿主机固件相关配置。

  • 方案2:先开放/sys读写权限(更推荐,权限开放范围更小)
docker run \
  -v /sys:/sys:rw \
  -v /sys/firmware:/sys/firmware:ro \
  <你的镜像名>

如果需要读取/sys/firmware下关联特定硬件的信息,可根据实际需求补充--device参数挂载对应设备文件即可。


内容的提问来源于stack exchange,提问作者Евгений Крамаров

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 20:09:01