背景

容器内使用普通用户,与 Docker daemon 以普通用户运行,是两个不同的权限边界。rootless 的收益来自减少 daemon 对宿主机的特权。

核心判断

  1. 通过 docker info 确认实际 daemon 模式,不只看镜像 USER。
  2. 检查用户命名空间、文件所有权、端口与 cgroup 支持。
  3. 保留 capability、只读根文件系统与资源限制等独立防护。

最小示例

下面保留核心逻辑;业务类型、调用入口和环境配置按项目补齐。

docker info --format '{{json .SecurityOptions}}'; docker run --rm --user 1000:1000 -p 8080:8080 example/app:1.0

边界与误区

docker run –user 1000:1000 本身不会把 rootful daemon 变成 rootless。网络和存储驱动差异可能影响性能,不能直接复用既有容量结论。

验证方式

以实际部署用户运行文件挂载、端口发布和内存限额演练,检查宿主机目录权限;比较网络性能并确认日志与运维工具仍可使用。

小结

rootless 降低宿主风险,但端口、存储、网络和监控行为必须在目标环境验证。