How to run docker image in ubuntu with vnc?

2019-08-26 07:04发布

问题:

In order to examine selenium tests running inside a docker image I am trying to set up a VNC to verify what is going on during the tests.

I am following the suggestions made here and created a new docker image with the following additional lines in Dockerfile:

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

Then I started the docker image with the following command:

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

and started krdc as my VNC viewer. So now what?

I do not see my docker image in krdc. Maybe I am missing something? Do I have to start the vnc code inside docker explicitly? Do I need to pass additional arguments to the docker command?

  • docker: 1.13.1
  • ubuntu: 16.4.03
  • krdc: 4.14.16

回答1:

There are two issues in the question that prevent you from the goal you want to achieve:

1. X server is missed in the image.

2. VNC server should be started in a container.

The additional part of Dockerfile is:

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

where entrypoint.sh is:

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

Now we can start a container using the following command:

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

and access it via vncviewer from the same host where container is started:

vncviewer localhost:5900