我想将我所有的 docker 容器作为 docker 无根容器运行,以便潜在的入侵限制传播。
为了分离关注点,我还在我的服务器上创建了几个用户,每个用户都通过 systemd 运行 docker rootless 守护进程。我想达到的目标:
场景:
用户 a:运行反向代理,监听 80 和 443 端口
用户 b:运行博客
用户 c:运行网站用户 d:运行邮件服务器用户 e:运行多个游戏服务器
- 用户a的反向代理可以“到达”用户a和b的博客
- 邮件服务器不需要反向代理,可以在单独的网络中
- 任何一个用户都不能访问另一个用户的数据
我想尽可能使用 lxc-user-nic 或内置端口驱动程序以获得最低的开销,但我知道至少邮件服务器需要知道入站电子邮件的真实来源 IP 以进行垃圾邮件检查,所以我会用户 slirp4netns。
这甚至可以使用 docker rootless 还是我应该回到 rootful systemd docker 守护进程并创建在需要通信的用户之间共享的 docker 网络?我选择 docker rootless 的唯一原因是安全性,但我不确定我是否能赢得这么多,如果我避免图像以brrr和 root 运行它们的东西。