SELinux를 내부적으로 사용하는 응용 프로그램을 배포하기 위해 Docker 컨테이너 안에 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 내에서 SELinux를 사용할 수 없습니다. 일반 가상 머신을 사용해야합니다.