SELinux対策したDockerでGUI

Post date: 2018/08/06 14:15:07

SELinuxが有効な場合、

docker run -it -v /tmp/.X11-unix:/tmp/.X11-unix -v /home/anagix/.Xauthority:/home/anagix/.Xauthority -e DISPLAY=$DISPLAY -e QT_X11_NO_MITSHM=1 --net=host alb.anagix.com:5000/mineda /bin/bash

すると

Error: Can't open display: :XXとなる。

(SELinuxでないときは、-v /tmp:/tmp ができたが、コンテナで/tmpに書き込みができない。ただし、

これは後述のcontainer_tに関するアクセス制御を全部無効にすることで回避できる。)

対策は、https://adam.younglogic.com/2017/01/gui-applications-container/

に書かれていた。

1. 以下の内容の mycontainer.cil を作成し、

(allow container_t xserver_t (unix_stream_socket (connectto)))

(allow container_t user_home_t (dir (read)))

2. semodule -i mycontainer.cil を実行する

上記でも、/usr/local/anagix_toolsにコンテナから書き込みができない。

SELinuxを有効にしている場合にDockerコンテナからホストのファイルシステムにアクセスできない場合の対処法

に書いてあるように、

container_tに関するアクセス制御を全部無効にすることで対処。見直す必要あり。

# semanage permissive -a container_t