Running CARLA in a Docker

This tutorial is designed for:

  • People that want to run CARLA without needing to install all dependencies.
  • Recommended solution to run multiple CARLA servers and perform GPU mapping

This tutorial was tested in Ubuntu 16.04 and using NVIDIA 396.37 drivers. This method requires a version of NVIDIA drivers >=390.

Docker Installation

Note

Docker requires sudo to run. Follow this guide to add users to the docker sudo group https://docs.docker.com/install/linux/linux-postinstall/

Docker CE

For our tests we used the Docker CE version. To install Docker CE we recommend using this tutorial

NVIDIA-Docker2

To install nvidia-docker-2 we recommend using the "Quick Start" section from the nvidia-dockers github.

Getting it Running

Pull the CARLA image.

docker pull carlasim/carla:version

For selecting a version, for instance, version 0.8.2 (stable), do:

docker pull carlasim/carla:0.8.2

Running CARLA under docker:

docker run -p 2000-2002:2000-2002 --runtime=nvidia -e NVIDIA_VISIBLE_DEVICES=0 carlasim/carla:0.8.4

The -p 2000-2002:2000-2002 argument is to redirect host ports for the docker container. Use NVIDIA_VISIBLE_DEVICES=<gpu_number> to select the GPU.

You can also pass parameters to the CARLA executable. With this you can chose the town and select the port that is going to be used:

docker run -p 2000-2002:2000-2002 --runtime=nvidia -e NVIDIA_VISIBLE_DEVICES=0 carlasim/carla:0.8.4 /bin/bash CarlaUE4.sh  < Your list of parameters >

At the list of parameters do not forget to add -world-port=<port_number> so that CARLA runs on server mode listening to the <port_number>