我正在尝试在 Docker 容器中安装 SELinux,以便分发在内部使用 SELinux 的应用程序。
默认的 CentOS 镜像没有安装 SELinux:
$ docker run -it centos:latest /bin/bash
[root@38ae5a98273d /]# sestatus
bash: sestatus: command not found
从 yum 安装后,SELinux 尚未启用。
[root@38ae5a98273d /]# yum install policycoreutils selinux-policy-targeted
...
[root@38ae5a98273d /]# sestatus
SELinux status: disabled
我找到的所有文档都说您需要重新启动系统才能安装它。但是,我不知道在 Docker 容器内模拟系统重启的方法。
如何在容器内安装和启用 SELinux?
SELinux 没有命名空间,因此单个容器不能有自己独立的 SELinux 策略。SELinux 在容器中总是显示为“禁用”,尽管它在主机上运行。
如果您的应用程序需要 SELinux,则不能在 Docker 中使用它。您将需要使用常规虚拟机。