【问题标题】:How to run docker image in ubuntu with vnc?如何使用 vnc 在 ubuntu 中运行 docker 映像?
【发布时间】:2018-03-20 06:39:18
【问题描述】:

为了检查在 docker 映像中运行的 selenium 测试,我正在尝试设置一个 VNC 来验证测试期间发生了什么。

我遵循here 提出的建议,并在Dockerfile 中创建了一个带有以下附加行的新docker 映像:

RUN     apt-get install -y x11vnc 
RUN     mkdir ~/.vnc
RUN     x11vnc -storepasswd 1234 ~/.vnc/passwd

然后我使用以下命令启动 docker 镜像:

docker run -p 5900 --rm -it --entrypoint /bin/bash selenium-tests

并开始 krdc 作为我的 VNC 查看器。那么现在怎么办?

我在 krdc 中看不到我的 docker 映像。也许我错过了什么?我是否必须在 docker 中明确启动 vnc 代码?我需要向docker 命令传递额外的参数吗?

  • 码头工人:1.13.1
  • ubuntu:16.4.03
  • krdc: 4.14.16

【问题讨论】:

标签: ubuntu docker vnc


【解决方案1】:

问题中有两个问题阻碍您实现想要实现的目标:

1.图片中缺少X服务器。

2. VNC 服务器应该在容器中启动。

Dockerfile的附加部分是:

RUN apt-get install -y x11vnc xvfb 
RUN mkdir ~/.vnc
RUN x11vnc -storepasswd 1234 ~/.vnc/passwd
COPY entrypoint.sh /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]

entrypoint.sh 在哪里:

#!/bin/bash
x11vnc -forever -usepw -create &
/bin/bash

现在我们可以使用以下命令启动一个容器:

docker run --rm -ti -p 5900:5900 <image_name_or_id>

并通过vncviewer从容器启动的同一主机访问它:

vncviewer localhost:5900

【讨论】:

  • 不需要在entrypoint.sh上设置可执行位吗?
  • 是的,应该在entrypoint.sh上设置可执行位。
  • 我不明白为什么这里需要一个 shell 脚本...由于 似乎是不必要的过度设计> 让它ENTRYPOINT x11vnc -forever -usepw -create &amp; /bin/bash 保持简单
猜你喜欢
  • 1970-01-01
  • 2022-08-23
  • 2020-05-16
  • 2017-11-29
  • 1970-01-01
  • 1970-01-01
  • 2016-05-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多