docker GUI 应用程序 (Eclipse) 的 xhost 命令
xhost command for docker GUI apps (Eclipse)
我正在 运行docker 中查看 GUI app。我听说这会因 Xserver 暴露而引发安全问题。我想知道以下每个步骤都在做什么,特别是 xhost local:root
:
- [-d ~/工作空间] || mkdir ~/工作空间
- xhost local:root
- docker 运行 -i --net=host --rm -e DISPLAY -v $HOME/workspace/:/workspace/:z docbill/ubuntu-umake-eclipse
[ -d ~/workspace ] || mkdir ~/workspace
这会在您的主目录中创建一个工作区目录(如果它尚不存在)。
xhost local:root
这允许本地计算机上的 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
通过 DISPLAY 环境变量从主机传递到容器中。这告诉 GUI 程序将它们的输出发送到哪里。
-v $HOME/workspace/:/workspace/:z
将工作区文件夹从主机上的主目录映射到容器内的 /workspace 文件夹,并启用 selinux 共享设置。
docbill/ubuntu-umake-eclipse
运行 此图片由用户 docbill 在 docker 中心创作(任何人都可以在这里创建帐户)。这不是 docker 的官方图片,而是社区提交的图片。
从选项来看,此命令很可能是为 RHEL 或 CentOS Docker 主机上的 运行ning 用户设计的。它不适用于 Docker for Windows 或 Docker for Mac,但应该适用于 Linux.
的其他变体
我使用了与 运行 我的带有 GUI 的容器类似的命令,但没有 xhost 和主机网络。相反,我只是将 X windows 套接字 (/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
我正在 运行docker 中查看 GUI app。我听说这会因 Xserver 暴露而引发安全问题。我想知道以下每个步骤都在做什么,特别是 xhost local:root
:
- [-d ~/工作空间] || mkdir ~/工作空间
- xhost local:root
- docker 运行 -i --net=host --rm -e DISPLAY -v $HOME/workspace/:/workspace/:z docbill/ubuntu-umake-eclipse
[ -d ~/workspace ] || mkdir ~/workspace
这会在您的主目录中创建一个工作区目录(如果它尚不存在)。
xhost local:root
这允许本地计算机上的 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
通过 DISPLAY 环境变量从主机传递到容器中。这告诉 GUI 程序将它们的输出发送到哪里。-v $HOME/workspace/:/workspace/:z
将工作区文件夹从主机上的主目录映射到容器内的 /workspace 文件夹,并启用 selinux 共享设置。docbill/ubuntu-umake-eclipse
运行 此图片由用户 docbill 在 docker 中心创作(任何人都可以在这里创建帐户)。这不是 docker 的官方图片,而是社区提交的图片。
从选项来看,此命令很可能是为 RHEL 或 CentOS Docker 主机上的 运行ning 用户设计的。它不适用于 Docker for Windows 或 Docker for Mac,但应该适用于 Linux.
的其他变体我使用了与 运行 我的带有 GUI 的容器类似的命令,但没有 xhost 和主机网络。相反,我只是将 X windows 套接字 (/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