背景
容器内使用普通用户,与 Docker daemon 以普通用户运行,是两个不同的权限边界。rootless 的收益来自减少 daemon 对宿主机的特权。
核心判断
- 通过 docker info 确认实际 daemon 模式,不只看镜像 USER。
- 检查用户命名空间、文件所有权、端口与 cgroup 支持。
- 保留 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 降低宿主风险,但端口、存储、网络和监控行为必须在目标环境验证。