LXC中的X和xdotool而不是KVM

康斯坦丁诺斯

到目前为止,我正在KVM虚拟机(Linux guest虚拟机)中使用各种xautomation / xdotool脚本,以使它们能够正常工作。我使用的是VirtIO磁盘,但是大多数情况下客户机的性能仍然很慢。

我可以在LXC容器中做同样的事情,例如使用docker吗?

你好

我不能对性能说什么,但是在研究时遇到了这样一个名为“您可以在docker中运行GUI应用程序”的SO Q&A吗?显示了完成此操作的3种方法。

  1. 通过VNC运行AppX

    此方法显示使用以下Dockerfile:

    # Firefox over VNC
    #
    # VERSION               0.1
    # DOCKER-VERSION        0.2
    
    from    ubuntu:12.04
    # make sure the package repository is up to date
    run     echo "deb http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/sources.list
    run     apt-get update
    
    # Install vnc, xvfb in order to create a 'fake' display and firefox
    run     apt-get install -y x11vnc xvfb firefox
    run     mkdir /.vnc
    # Setup a password
    run     x11vnc -storepasswd 1234 ~/.vnc/passwd
    # Autostart firefox (might not be the best way to do it, but it does the trick)
    run     bash -c 'echo "firefox" >> /.bashrc'
    

    然后像这样运行Docker实例:

    $ docker run -p 5900 creack/firefox-vnc x11vnc -forever -usepw -create
    
  2. 使用Docker +子用户

    使用Subuser + Docker,您可以直接在其中使用单个应用程序直接启动Docker VM,从而为它们提供从物理主机对特定文件夹的狭窄访问权限。

    Subuser应该易于安装,并且在技术上本身并不重要。它只是docker的包装,仅此而已。

    子用户使用主机和子容器之间共享的卷启动docker容器。就这样。

    这是一个视频,展示了Subuser的使用情况

  3. 通过SSH运行X11

    最后一项技术展示了如何使用运行中的X11 + SSH服务来设置Docker实例。然后,此设置允许任何X11应用程序通过SSH隧道出。

    ssh用于转发X11,并为您提供docker容器与本地计算机之间的加密数据通信。

    然后,此方法继续在本地设置Xpra + Xephyr。

    Xpra + Xephyr允许显示具有恢复会话功能的容器内部运行的应用程序,例如Firefox,LibreOffice,xterm等。因此,即使连接断开,您也可以在任何位置打开桌面而不会丢失应用程序的状态。

    Xpra还使用了一种自调整协议,该协议具有自我调整能力,并且对时延不敏感,因此可以在比标准X更差的链路上使用。

    这些应用程序可以是无根的,因此客户端计算机可以管理显示的窗口。

    来源:DOCKER DESKTOP:您在DOCKER容器内部通过SSH运行的桌面

参考

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

LXC和KVM的两用客户机?

来自分类Dev

在LXC容器中安装和使用Nvidia驱动程序

来自分类Dev

xdotool-如何获取给定的X和Y窗口ID?

来自分类Dev

LXC和OverlayFS

来自分类Dev

(x不是None)和(y不是None)和(x和y)的python区别不是None

来自分类Dev

可以使用“。” 在Ubuntu和OS X中的.bashrc中运行文件而不是源文件?

来自分类Dev

将KVM虚拟机转换为LXC容器

来自分类Dev

Xen / KVM / LXC用于测试程序包

来自分类Dev

如何用任意数据在R中绘制表面图,即不是x和y的函数

来自分类Dev

xdotool和xautomation有什么区别?

来自分类Dev

xdotool脚本执行鼠标移动和单击

来自分类Dev

Docker与VM和LXC的关系

来自分类Dev

LXC容器和桥连接

来自分类Dev

KVM和rdtsc延迟

来自分类Dev

KVM和交换空间

来自分类Dev

LXC ubuntu:16.04容器中的root和Ubuntu密码是什么?

来自分类Dev

使用LAMP堆栈备份和还原LXC容器-MySQL无法在容器中启动

来自分类Dev

xdotool在shell脚本中不起作用

来自分类Dev

带有VT-x和64位计算机的KVM

来自分类Dev

带有VT-x和64位计算机的KVM

来自分类Dev

ubuntu 中 lxc 上的 Oracle

来自分类Dev

如何在Matplotlib和Seaborn中的x轴刻度线(不是刻度线标签)和x轴之间添加填充

来自分类Dev

lxc命令lxc start和lxc-start等有什么区别?

来自分类Dev

setdiff(x,y)错误:仅在x中而不是y中返回x而不是值

来自分类Dev

KVM中的CPU放置

来自分类Dev

'X'不是函数-Javascript中的错误

来自分类Dev

什么是虚拟化和KVM?

来自分类Dev

什么是虚拟化和KVM?

来自分类Dev

桥接接口和KVM