SorryToPerson logo
返回
Docker2026-04-15·7 分钟

Docker Rootless 与隔离机制

介绍 Docker Rootless 模式、容器隔离边界以及常见安全隔离实践。

Docker Rootless 与隔离机制

1. 什么是 Rootless Docker

  • Rootless Docker 允许普通用户运行 Docker 守护进程。
  • 提升容器运行时安全,避免 root 权限扩散。

2. 启用 Rootless 模式

bash
dockerd-rootless-setuptool.sh install
docker context use rootless
  • 需满足用户命名空间和相关内核配置。
  • 不同发行版安装方式略有差异。

3. 容器隔离边界

  • Docker 默认使用 Namespace、Cgroups、Capability、SELinux/AppArmor 等隔离机制。
  • Rootless 模式进一步缩小宿主机权限范围。

4. 限制容器权限

bash
docker run --cap-drop=ALL --cap-add=NET_BIND_SERVICE myapp:latest
  • 使用 --cap-drop=ALL 只保留最小能力。
  • 根据需求选择必要能力。

5. 文件系统隔离

  • --read-only 启用只读根文件系统。
  • --tmpfs /tmp 把临时目录挂载到内存。
bash
docker run --read-only --tmpfs /tmp myapp:latest

6. 网络隔离

  • 自定义网络可避免容器直接暴露到宿主网络。
  • --network none 完全关闭网络。

7. 安全建议

  • 使用 Rootless 模式作为额外防护层。
  • 仍需注意镜像来源和运行时访问控制。
  • 结合扫描、审计与最小权限策略构建安全容器。
Docker安全Rootless