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

Debian下Docker Rootless模式如何关闭userns-remap或指定用户映射

Rootless Docker 用户映射调整方案(Debian)

一、修改Subuid/Subgid映射,让容器root对应宿主机1111用户

Rootless Docker默认通过分配连续subuid/subgid段实现用户隔离,你可以修改映射规则,让容器内root直接映射到宿主机的1111用户:

  1. 编辑/etc/subuid和/etc/subgid文件

    • 找到用户1111的条目,默认格式类似1111:363143:65536(用户名:起始UID:范围长度)
    • 将两行分别修改为:
      1111:1111:1
      
      这个配置指定:宿主机用户1111的subuid/subgid仅包含自身UID/GID,容器内的UID 0(root)会直接映射到宿主机UID 1111。
  2. 重启Rootless Docker服务

    • 停止当前服务:
      systemctl --user stop docker
      
    • 清理Docker运行缓存(避免旧映射残留):
      rm -rf ~/.docker/run
      
    • 启动服务:
      systemctl --user start docker
      

二、验证配置效果

运行测试容器,查看容器内root对应的宿主机UID:

docker run --rm alpine id -u

如果输出为1111,说明映射生效。

三、关于禁用userns-remap的说明

Rootless Docker的无特权运行完全依赖用户命名空间(userns)隔离,无法禁用userns-remap——禁用后,非root用户1111没有权限创建容器所需的内核资源(如网络设备、存储挂载点),Docker守护进程会启动失败。因此调整subuid/subgid映射是唯一符合你需求的方案:既保持Docker以非root用户运行,又让容器进程以宿主机1111身份执行。

内容的提问来源于stack exchange,提问作者morrow

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 08:03:19