This docker image is based on jenniferbuehler/ros-indigo-base-catkin and adds the ubuntu package ros-indigo-desktop-full to it.
Additionally, there are some efforts in testing stage to support running on OpenGL applications. Despite the full ROS support incl. Gazebo, this docker image does not support graphical interfaces with OpenGL, because support for this depends on the locally used graphics card. The problem is that it looks like the same graphic drivers as the hosts is required in order to enable hardware acceleration.
See also comment in the DockerHub Gazebo description, Deployment suggestions -> Devices.
I'm still looking into whether it's possible to run gazebo without HW acceleration and using Mesa libraries only....
Please also refer to the Dockerfile in my git repository.
Run ROS on several containers
Usage is as with the docker images ros::<distro>-ros-base:
To use ROS from several terminals, for example run roscore in a separate terminal:
First start a network:
sudo docker network create ros-net
Then, run roscore:
sudo docker run -ti --rm --name master --net ros-net jenniferbuehler/ros-indigo-full-catkin roscore
Then you may run other ROS nodes in another terminal, e.g. just run a rostopic list:
sudo docker run -it --rm --net ros-net --name topicls --env ROS_HOSTNAME=topicls --env ROS_MASTER_URI=http://master:11311/ jenniferbuehler/ros-indigo-full-catkin rostopic list
At this stage, you cannot run Gazebo yet. The instructions are included for the test stage.
If you want to run gazebo, you will always first have to call
in order to allow clients to connect from any host.
sudo docker run -ti --rm -e DISPLAY=$DISPLAY --privileged -v /tmp/.X11-unix:/tmp/.X11-unix jenniferbuehler/ros-indigo-full-catkin gazebo