Docker 安全与容器限制全解析
1. 安全模块:SELinux 与 AppArmor
SELinux 虽然能提供额外的安全保护,但新手体验不佳。新接触 SELinux 的人常常会遇到各种 “Permission Denied” 错误,却不知问题所在及如何解决。开发者也不愿启用 SELinux,这导致开发和生产环境不一致,而这正是 Docker 试图解决的问题。若你需要 SELinux 的额外保护,只能暂时忍受现状,等待情况改善。
AppArmor 比 SELinux 简单很多,这既是它的优点也是缺点。它应该能正常工作且不干扰你,但无法提供与 SELinux 相同粒度的保护。AppArmor 通过为进程应用配置文件,在 Linux 能力和文件访问级别上限制进程的权限。如果你使用的是 Ubuntu 主机,很可能它正在运行 AppArmor。你可以通过运行 sudo apparmor_status 来检查。Docker 会自动为每个启动的容器应用一个 AppArmor 配置文件,默认配置文件可在 /etc/apparmor.d/docker 找到,它能防止恶意容器访问各种系统资源。不过目前默认配置文件无法更改,因为 Docker 守护进程重启时会覆盖它。
若 AppArmor 干扰了容器的运行,可以在运行容器时通过传递 --security-opt="apparmor:unconfined" 来关闭它。若要为容器传递不同的配置文件,可使用 --security-opt="apparmor:PROFILE" ,其中 PROFILE 是之前由 Ap
订阅专栏 解锁全文
2082

被折叠的 条评论
为什么被折叠?



