当前位置: 首页 > 面试题库 >

Docker GUI应用程序的xhost命令(Eclipse)

包丁雨
2023-03-14
问题内容

我正在看在docker 中运行GUI应用程序。我听说由于Xserver被暴露,这会引起安全问题。我想知道以下每个步骤的操作,特别是xhost local:root

  • [-d〜/ workspace] || mkdir〜/工作区
  • xhost local:root
  • docker run -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 在启用了selinux共享设置的情况下,将工作空间文件夹从主机上的主目录映射到容器内的/ workspace文件夹。
  • docbill/ubuntu-umake-eclipse运行此镜像,该镜像由docker hub上的用户docbill创作(任何人都可以在此处创建帐户)。这不是来自docker的官方映像,而是社区提交的映像。

从这些选项中,此命令很可能是为在RHEL或CentOS
Docker主机上运行的用户设计的。它不适用于Windows的Docker或Mac的Docker,但应适用于其他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


 类似资料:
  • 问题内容: 我正在尝试构建一个使用CoreBluetooth的命令行应用程序。问题是,它在命令行应用程序上不起作用。 我已将我的代码(实现CBCentralManagerDelegate协议的类- 称为此类)从命令行应用程序项目移至另一个Mac OS GUI应用程序。 我在--supersample中运行了一些测试,我只是初始化了一个创建on 实例的实例,然后调用。 这是我在CLI和GUI项目中所

  • 我注册了一个SlashCommand。。。但它的回答是“交互应用程序的命令无效”,有人能帮忙吗。。。

  • 我正在使用discord.js和WOKCommands来使用斜杠命令,但是当在discord中输入时,它给我一个错误“无效的交互应用程序命令” 下面是该命令的代码: 仅当我也需要显示主脚本的代码时,该命令的代码才是命令的代码。我会这样做的。

  • 问题内容: 嗨,我正在开发一个需要我运行一些bash代码的应用程序,有没有一种方法可以将脚本硬编码到我的应用程序中然后运行它?例如(这是一个非常简化的示例) 我有以下方法来运行一行bash命令,但需要在多行中运行类似的内容。同样,上面的代码是一个非常简化的示例,我实际上在执行的操作必须通过脚本运行,而不能通过Java完成。我也想对它进行硬编码,因为我知道可以将脚本存储在手机上并使用以下命令运行它,

  • 我有一个部分扎根的Android设备。所谓部分root,是指我只能通过ADB运行root命令。我已经想出了如何在设备本身的终端模拟器中本地运行这些命令。我的问题是,我将如何着手编写Android应用程序的代码,从按钮按钮执行一个ADB命令(或多个命令)?我找不到任何解释如何通过应用程序界面运行直接ADB命令的东西。只是为了澄清,任何涉及“su”的东西都不会在这个设备上工作。它只接受ADB输入进行根