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