Rootless 模式
Rootless 模式允许以非 root 用户身份运行 Docker,提高安全性。
为什么使用 Rootless?
- ✅ 降低安全风险 - 减少权限提升攻击面
- ✅ 符合安全最佳实践 - 最小权限原则
- ✅ 容器隔离 - 更好的用户隔离
安装 Rootless Docker
前提条件
- Linux 内核 4.18+
- systemd 用户会话
- 新版本内核命名空间支持
安装步骤
sh
# 安装 rootlesskit
curl -fsSL https://get.docker.com/rootless | sh
# 设置环境变量
export PATH=$HOME/bin:$PATH
export DOCKER_HOST=unix://$HOME/.docker/run/docker.sock
# 启动 Docker
dockerd-rootless.sh &使用 Rootless Docker
基本使用
sh
# 启动 Docker
systemctl --user start docker
# 设置开机自启
systemctl --user enable docker
# 使用 Docker
docker run hello-world限制和注意事项
端口限制
Rootless 模式只能使用 1024 以上的端口:
sh
# ✅ 可以使用
docker run -p 8080:80 nginx
# ❌ 不能使用
docker run -p 80:80 nginx网络限制
某些网络功能可能受限,如 --network host。
卷挂载
某些卷挂载路径可能受限。
迁移到 Rootless
备份数据
sh
# 备份镜像
docker save $(docker images -q) | gzip > images.tar.gz
# 备份卷
# ... (参考备份章节)安装 Rootless
按照上述安装步骤操作。
恢复数据
sh
# 恢复镜像
gunzip -c images.tar.gz | docker load最佳实践
- 使用 Rootless - 生产环境推荐使用
- 限制端口 - 使用反向代理处理低端口
- 监控权限 - 定期检查权限配置
- 更新系统 - 保持内核和工具更新
BSFC Tech Pro Tip
生产环境应该使用 Rootless 模式,这是 Docker 安全最佳实践。