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内では使用できません。通常の仮想マシンを使用する必要があります。