SELinux対策したDockerでGUI

2018/08/06 7:15 に 森山誠二郎 が投稿   [ 2018/08/11 3:19 に更新しました ]
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にコンテナから書き込みができない。

に書いてあるように、

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

# semanage permissive -a container_t
Comments