我正在看在docker 中运行GUI应用程序。我听说由于Xserver被暴露,这会引起安全问题。我想知道以下每个步骤的操作,特别是xhost local:root:
xhost local:root
[ -d ~/workspace ] || mkdir ~/workspace
如果您的主目录中不存在该目录,则会在该目录中创建一个工作区目录。
这允许本地计算机上的root用户连接到X Windows显示。
docker run -i --net=host --rm -e DISPLAY -v $HOME/workspace/:/workspace/:z docbill/ubuntu-umake-eclipse
这将运行具有以下选项的容器:
-i
--net=host
--rm
-e DISPLAY
-v $HOME/workspace/:/workspace/:z
docbill/ubuntu-umake-eclipse
从这些选项中,此命令很可能是为在RHEL或CentOS Docker主机上运行的用户设计的。它不适用于Windows的Docker或Mac的Docker,但应适用于其他Linux变体。
我使用类似的命令通过GUI运行容器,但是没有xhost和主机网络。相反,我只是在X Windows套接字(/tmp/.X11-unix)中直接映射到了容器:
/tmp/.X11-unix
docker run -it --rm -e DISPLAY -u `id -u` \ -v /tmp/.X11-unix:/tmp/.X11-unix \ -v /etc/localtime:/etc/localtime:ro \ my_gui_image