如何在Docker容器中运行GUI应用程序?
是否有任何图像设置vncserver或某些东西,以便你可以 - 例如 - 在Firefox周围添加一个额外的speedbump沙箱?
我正在运行一个Docker容器,主要是作为该R语言的独立开发环境.(R这里的用法与帖子的其余部分正交,即你可以假设任何可以在repl-session中运行的通用程序.)很多时候这将涉及做绘图,制作图形等内容; 我需要看看这些.因此,我更愿意选择显示我在容器中创建的图形.到目前为止,我是这样做的.首先我创建一个Dockerfile.省略最重要的步骤是:
# Set root passwd
RUN echo "root:test" | chpasswd
# Add user so that container does not run as root
RUN useradd -m docker
RUN echo "docker:test" | chpasswd
RUN usermod -s /bin/bash docker
RUN usermod -aG sudo docker
ENV HOME /home/docker
RUN mkdir /var/run/sshd
RUN mkdir -p /var/log/supervisor
# copy servisord.conf which lists the processes to be spawned once this
# container is started (currently only one: sshd)
COPY …Run Code Online (Sandbox Code Playgroud) 我正在运行一个docker(我自己构建),这是一个运行E2E测试的docker.浏览器已启动并运行但我希望有另一个很好的功能,我希望能够在线观看会话.
我的docker run命令是:
docker run -p 4444:4444 --name ${DOCKER_TAG_NAME}
-e Some_ENVs
-v Volume:Volume
--privileged
-d "{docker-registry}" >> /dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)
我能够导出截图,但在某些情况下,它还不够,观察测试的确切状态的能力将是惊人的.我尝试了很多选择,但我走到了尽头,任何帮助都会很棒.
Python 2.7ubuntu:14.04docker在Ubuntu服务器上运行.
我知道它的复制本,但没有人回答他,所以......
我想在 docker 容器中运行 Firefox(或任何图形应用程序)。
我的要求:当我启动容器时,我应该创建一个虚拟显示,启动 VNC 服务器,然后启动 GUI 应用程序。这意味着在容器成功启动后,我可以通过 VNC 客户端连接到容器内运行的 GUI 应用程序。当我关闭应用程序时,容器应该自动停止。
尝试 1: 我从这里的示例开始https://hub.docker.com/r/devopsil/vnc-firefox/~/dockerfile/ 在此示例中,开发人员通过 CMD 启动 vnc 服务器并使其永远运行。他将 firefox 作为 .rc 文件的一部分,以便在容器启动时启动。如果您通过 VNC 客户端连接,您可以看到 firefox,并且按预期关闭 Firefox 或断开 VNC 会话不会停止容器。
尝试 2: 我按如下方式调整了 Dockerfile。只更改了最后一行(用 ENTRYPOINT 替换了 CMD 并删除了“永远”标志)
ENTRYPOINT ["/usr/bin/x11vnc", "-usepw", "-create"]
Run Code Online (Sandbox Code Playgroud)
重建和运行容器“docker run --rm -p 5900”现在有不同的行为:容器启动,通过VNC客户端的连接工作,几秒钟后打开firefox(等待消息“显示中缺少扩展RANDR:20” ) 并且容器在关闭 vnc 连接后自动停止。
尝试 3: 然后我创建了一个 bash 脚本来启动 vncserver 和 firefox,并更改 Dockerfile 以将这个脚本文件复制到镜像中,并将该脚本作为入口点。但是我收到了类似于“未设置显示变量”的错误
#!/bin/bash
/usr/bin/x11vnc -forever -usepw -create &
firefox
Run Code Online (Sandbox Code Playgroud)
尝试 4: 所以我通过 docker run 命令传递了 DISPLAY 变量,但是错误是无法打开显示。 …