This repository developed from ConSol/docker-headless-vnc-container, with provide the headless VNC environments for docker container
-
henry2423/ros-vnc-ubuntu:kinetic
: Ubuntu 16.04 withROS Kinetic + Gazebo 8
-
henry2423/ros-vnc-ubuntu:lunar
: Ubuntu 16.04 withROS Lunar + Gazebo 9
-
henry2423/ros-vnc-ubuntu:melodic
: Ubuntu 18.04 withROS Melodic + Gazebo 9
This is a Docker environmentalist equipped with ROS, Gazebo, xfce-vnc, no-vnc(http vnc service) and TensorFlow-gpu. The container is developed under xfce-docker-container source and add the ROS, TensorFlow GPU environment on top of it, to provide a essential kit for anyone who develop with robotic and deep learning.
-
Run command with mapping to local port
5901
(vnc protocol) and6901
(vnc web access):docker run -d -p 5901:5901 -p 6901:6901 henry2423/ros-vnc-ubuntu:kinetic
-
If you want to get into the container use interactive mode
-it
andbash
docker run -it -p 5901:5901 -p 6901:6901 henry2423/ros-vnc-ubuntu:kinetic bash
-
If you want to connect to tensorboard, run command with mapping to local port
6006
:docker run -it -p 5901:5901 -p 6901:6901 -p 6006:6006 henry2423/ros-vnc-ubuntu:kinetic
-
Build an image from scratch:
docker build -t henry2423/ros-vnc-ubuntu:kinetic .
If the container runs up, you can connect to the container throught the following
- connect via VNC viewer
localhost:5901
, default password:vncpassword
- connect via noVNC HTML5 full client:
http://localhost:6901/vnc.html
, default password:vncpassword
- connect via noVNC HTML5 lite client:
http://localhost:6901/?password=vncpassword
- connect to Tensorboard if you do the tensorboard mapping above:
http://localhost:6006
- The default username and password in container is ros:ros
Add the --user
flag to your docker run command:
docker run -it --user root -p 5901:5901 henry2423/ros-vnc-ubuntu:kinetic
Add the --user
flag to your docker run command (Note: uid and gui of host system may not able to map with container, which is 1000:1000. If that is the case, check with 3):
docker run -it -p 5901:5901 --user $(id -u):$(id -g) henry2423/ros-vnc-ubuntu:kinetic
The following VNC environment variables can be overwritten at the docker run
phase to customize your desktop environment inside the container:
VNC_COL_DEPTH
, default:24
VNC_RESOLUTION
, default:1920x1080
VNC_PW
, default:vncpassword
USER
, default:ros
PASSWD
, default:ros
Simply overwrite the value of the environment variable VNC_PW
. For example in
the docker run command:
docker run -it -p 5901:5901 -p 6901:6901 -e VNC_PW=vncpassword henry2423/ros-vnc-ubuntu:kinetic
Simply overwrite the value of the environment variable VNC_RESOLUTION
. For example in
the docker run command:
docker run -it -p 5901:5901 -p 6901:6901 -e VNC_RESOLUTION=800x600 henry2423/ros-vnc-ubuntu:kinetic
You should run with following environment variable in order to mapping host user/group with container, and retrieve R/W permission of mounting directory in container (Note: after running this command, the user account in container will be same as host account):
docker run -it -p 5901:5901 \
--user $(id -u):$(id -g) \
--volume /etc/passwd:/etc/passwd \
--volume /etc/group:/etc/group \
--volume /etc/shadow:/etc/shadow \
--volume /home/ros/Desktop:/home/ros/Desktop:rw \
henry2423/ros-vnc-ubuntu:kinetic
-
Run command with mapping to local port
8888
(jupyter protocol) and8888
(host web access):docker run -d -p 8888:8888 henry2423/ros-vnc-ubuntu:kinetic
-
Check your local IP within container using
$ifconfig
, then you can start up jupyter notebook in container with following command:jupyter notebook --ip={YOUR CONTAINER IP} --port=8888 --allow-root
-
After start up the jupyter kernel, you can access the notebook from host browser through HTTP service.
http://localhost:8888/
- ConSol/docker-headless-vnc-container - developed the ConSol/docker-headless-vnc-container