¿Cómo habilitar SELinux dentro de un contenedor CentOS Docker?

13

Estoy tratando de instalar SELinux dentro de un contenedor Docker para distribuir una aplicación que usa SELinux internamente.

La imagen predeterminada de CentOS no tiene instalado SELinux:

$ docker run -it centos:latest /bin/bash
[root@38ae5a98273d /]# sestatus
bash: sestatus: command not found

Después de instalarlo desde yum, SELinux aún no está habilitado.

[root@38ae5a98273d /]# yum install policycoreutils selinux-policy-targeted
...
[root@38ae5a98273d /]# sestatus
SELinux status:                 disabled

Toda la documentación que he encontrado dice que necesita emitir un reinicio del sistema para instalarlo. Sin embargo, no conozco un método para simular un reinicio del sistema dentro de un contenedor Docker.

¿Cómo se hace para instalar y habilitar SELinux dentro de un contenedor?

sffc
fuente

Respuestas:

23

SELinux no tiene espacios de nombres, por lo que los contenedores individuales no pueden tener sus propias políticas de SELinux separadas. SELinux siempre parecerá estar "deshabilitado" en un contenedor, aunque se esté ejecutando en el host.

Si su aplicación requiere SELinux, no puede usarla dentro de Docker. Deberá usar una máquina virtual normal.

Michael Hampton
fuente
3
tl; dr: la contenedorización no es virtualización.
MadHatter