Skip to main content

Required software

Before you can use the TurtleBot3 ROS2 Jazzy Dev Container, you need to install the following software on your host machine:

Docker

Container runtime for building and running the development environment

VS Code

Code editor with Dev Containers extension support

Dev Containers

VS Code extension for working inside containers

Docker

Docker is required to build and run the containerized development environment. Windows/macOS:
  • Download and install Docker Desktop
  • Docker Desktop includes everything you need in a single installer
Linux:
  • Install Docker Engine following the official guide for your distribution
  • Docker Compose is included with modern Docker installations
On Windows, Docker Desktop requires WSL 2 (Windows Subsystem for Linux 2). The installer will help you set this up if it’s not already enabled.

VS Code

Visual Studio Code is the recommended editor for working with dev containers.

Dev Containers extension

The Dev Containers extension enables VS Code to work seamlessly with Docker containers.
1

Open VS Code

Launch Visual Studio Code on your system
2

Open Extensions

Click the Extensions icon in the sidebar or press Ctrl+Shift+X (Windows/Linux) or Cmd+Shift+X (macOS)
3

Search and install

Search for “Dev Containers” and install the extension by Microsoft
4

Reload if needed

Reload VS Code if prompted after installation
The Dev Containers extension ID is ms-vscode-remote.remote-containers. Make sure you install the official Microsoft extension.

System requirements

Your computer needs sufficient resources to run Docker containers and simulate a robot environment.

Minimum requirements

These are the bare minimum specs. The container will run but performance may be limited.
  • CPU: 4 cores
  • RAM: 8 GB
  • Disk Space: 20 GB free
  • OS: Windows 10/11, macOS 10.15+, or any modern Linux distribution
These specs will provide smooth performance for development and simulation.
  • CPU: 6+ cores
  • RAM: 16 GB
  • Disk Space: 50 GB free
  • GPU: Optional but recommended for better Gazebo performance
  • OS: Windows 10/11, macOS 11+, or Linux with kernel 4.x+

Supported operating systems

Windows:
  • Windows 10 version 21H2 or later
  • Windows 11 (any version)
  • WSL 2 must be enabled for Docker Desktop
macOS:
  • macOS 10.15 (Catalina) or later
  • Both Intel and Apple Silicon (M1/M2/M3) are supported
Linux:
  • Ubuntu 20.04, 22.04, 24.04
  • Debian 11+
  • Fedora 37+
  • Any distribution with Docker support and kernel 4.x or later

Hardware considerations

GPU support

The container can use your GPU for hardware-accelerated graphics in Gazebo:
  • Linux: Native GPU support via /dev/dri device passthrough
  • Windows: Limited GPU support through WSL 2
  • macOS: No direct GPU support, uses software rendering
If you experience graphics issues, the container automatically falls back to software rendering. You can force software rendering by setting LIBGL_ALWAYS_SOFTWARE=1.

Disk space breakdown

Here’s what uses disk space in the container:
  • Ubuntu 24.04 base image: ~1 GB
  • ROS2 Jazzy packages: ~2 GB
  • Gazebo Harmonic: ~500 MB
  • TurtleBot3 source code: ~50 MB
  • Build artifacts: ~500 MB
  • Container overhead: ~200 MB
Total: Approximately 4-5 GB for the container plus workspace files

Memory allocation

Docker Desktop (Windows/macOS) limits container memory by default:
1

Open Docker Desktop settings

Click the Docker icon in your system tray and select Settings
2

Navigate to Resources

Go to Resources → Advanced (Windows) or Resources (macOS)
3

Adjust memory

Set Memory to at least 8 GB (16 GB recommended)
4

Adjust CPUs

Allocate at least 4 CPU cores (6+ recommended)
5

Apply changes

Click “Apply & Restart” to save the changes
On Linux, Docker uses your system resources directly without limits. No additional configuration is needed.

Network requirements

The container requires internet access during the initial build:
  • Docker Hub: To download the base image (osrf/ros:jazzy-desktop-full-noble)
  • GitHub: To clone TurtleBot3 repositories
  • Ubuntu/ROS repositories: To install packages
  • OSRF repositories: To install Gazebo Harmonic
After the initial build, the container can run offline. Only rebuilding or updating packages requires internet access.

Port forwarding

The container forwards these ports to your host:
PortServiceDescription
6080noVNCBrowser-based desktop access
5901VNCDirect VNC client access
If port 6080 is already in use on your system, you’ll need to modify .devcontainer/devcontainer.json to use a different port.

Verification checklist

Before proceeding to installation, verify you have:
  • Docker installed and running
  • VS Code installed
  • Dev Containers extension installed in VS Code
  • At least 8 GB RAM allocated to Docker (16 GB recommended)
  • At least 20 GB free disk space (50 GB recommended)
  • Internet connection for initial setup
  • Ports 6080 and 5901 available
You can verify Docker is working by running docker --version and docker run hello-world in your terminal.

Next steps

Once you’ve verified all prerequisites are met, proceed to the installation guide to set up the project.

Build docs developers (and LLMs) love