如何从本地浏览器观看远程服务器上Docker中的Xvfb会话?

7

我正在运行一个自己构建的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

我能够导出截图,但在某些情况下这并不足够,观看测试的确切状态的能力将是惊人的。我尝试了很多选项,但陷入了死胡同,任何帮助都将是巨大的帮助。
  • 我的测试使用Python 2.7
  • 我的Docker基础镜像是ubuntu:14.04
  • 我的环境在AWS上(如果有关系的话)
  • Docker在Ubuntu服务器上运行。

  • 我知道这是重复问题,但没有人回答他,所以...


这可能会有所帮助:https://dev59.com/9Wct5IYBdhLWcg3wgNcy - Florent B.
我已经查看了这个问题,问题在于我的问题不是从Docker运行的服务器观看会话,而是我想观看位于服务器内部的Docker中的会话。感谢您的帮助。 - Yonatan Kiron
我认为这个答案也应该是你问题的解决方案:can-you-run-gui-apps-in-a-docker-container - toschneck
2个回答

2

最近出现了一个名为Selenoid的工具。它在Docker容器中启动浏览器(即您所需的无头浏览器)。它有一个独立的UI,可以通过VNC显示实时会话屏幕。因此,您可以并行启动多个会话,然后查看甚至拦截目标浏览器中发生的操作。所有这些都在云环境中完美地运行。


听起来非常有前途,我会试一试,但目前进展不太顺利...https://github.com/aerokube/selenoid/issues/102 我会更新进展情况的。非常感谢! - Yonatan Kiron
已经在那里回答过了,请尝试使用这些图片:https://hub.docker.com/r/selenoid/vnc/ - vania-pooh

0

我之前在使用vnc时也遇到了同样的问题,你需要知道你的xvfb/vnc使用的是哪个端口,然后在你的aws安全组中打开该端口,完成后你就能够连接了。

在我的情况下,我正在启动selenium docker "https://github.com/elgalu/docker-selenium" 并使用以下命令启动docker机器 "docker run -d --name=grid -p 4444:24444 -p 5900:25900 \ -v /dev/shm:/dev/shm -e VNC_PASSWORD=hola \ -e SCREEN_WIDTH=1920 -e SCREEN_HEIGHT=1480 \ elgalu/selenium"

根据该命令,VNC端口为"5900",因此我在实例安全组上打开了该端口,并使用VNC查看器连接了该端口。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接