Stop fighting Docker. Start building robots.

Your ROS2 Docker
Environment, Generated

Pick your ROS2 distro, select the packages you need, configure your dev environment — and walk away with a ready-to-run Dockerfile & Compose file. Zero Docker expertise required.

🟢 CI Validated · Tested via GitHub Actions Found an Issue?
▶ Start Building Your Environment
1
ROS2 Base
2
Packages
3
Dev Tools
4
User Setup
5
Download
Choose your ROS2 Distribution
Each distro has different support timelines. Humble is the current LTS (supported until 2027). Jazzy is the latest LTS. Kilted is the newest release.
ROS2 Distribution
🐢
Humble Hawksbill
LTS · Ubuntu 22.04
Supported until May 2027
Most Popular
🎷
Jazzy Jalisco
LTS · Ubuntu 24.04
Supported until May 2029
Latest LTS
🦖
Kilted Kaiju
Latest available version
Ubuntu 24.10
Latest
Base Image Variant
💡
Which variant should I pick? Choose ros-base for headless/embedded systems with minimal overhead. Choose desktop if you plan to run RViz or Gazebo GUIs. Choose desktop-full for a complete ready-to-go experience (largest image).
ros-base
Core ROS2 only
~1.2 GB · Minimal
desktop
+ RViz2 + tools
~2.8 GB · Recommended
Recommended
desktop-full
+ Gazebo + demos
~4.5 GB · Everything
Step 1 of 4
Select Your ROS2 Features
Check everything you plan to use. Don't worry about dependencies — they're handled automatically.
Navigation & Path Planning
NAV2
Full navigation stack: SLAM, path planning, obstacle avoidance, recovery behaviors
📡
SLAM Toolbox
Simultaneous localization and mapping. Build maps while navigating
🔭
Cartographer
Google's real-time 2D/3D SLAM library with ROS2 integration
Simulation
📦
Gazebo Classic
Full physics simulator for testing robots. Requires X11 or display forwarding
GUI Required
💠
Ignition / Gz Sim
Next-gen Gazebo (Ignition). Modern physics, better ROS2 bridging
New Gazebo
👁️‍🗨️
RViz2
3D visualization tool — view point clouds, transforms, robot models, sensor data
GUI Required
Robot Platforms
🤖
TurtleBot3
Full TurtleBot3 stack: bringup, simulation, navigation, teleop packages
Great for Learning
MoveIt2
Motion planning framework for robotic arms and manipulation
⚙️
ros2_control
Hardware abstraction layer for actuators, sensors, and controllers
Perception & Sensors
PCL / Point Cloud
Point Cloud Library + perception_pcl for 3D sensor processing (LiDAR, depth cameras)
📷
CV Bridge + OpenCV
Convert between ROS image messages and OpenCV for computer vision pipelines
TF2 Tools
Transform library plus visualization and debugging tools for coordinate frames
Communication & Middleware
🌪️
CycloneDDS
Alternative DDS implementation — faster and more reliable for many use cases
Recommended DDS
ROSBridge Suite
WebSocket bridge to connect web apps, mobile apps, and non-ROS systems
GPU & Accelerated Computing
⚠️
GPU packages require NVIDIA drivers on your host + the NVIDIA Container Toolkit. Without these, the container won't start. Only select if you have an NVIDIA GPU.
CUDA Support
NVIDIA CUDA base image + toolkit for GPU-accelerated computing
NVIDIA GPU
🧠
TensorRT
NVIDIA's deep learning inference optimizer — run neural networks fast
NVIDIA GPU
Configure Dev Tools
Select the development utilities you want pre-installed. These make day-to-day work inside the container comfortable.
Build & Package Tools
🔨
colcon
ROS2's build tool — required for building workspace packages
📦
rosdep
Dependency manager — install ROS package dependencies with one command
Python3 + pip
Python development with pip, venv support, and common packages
CMake + build-essential
C++ build toolchain — needed for compiling native packages
Version Control & Workspace
Git
Version control — clone repos, manage code, pull packages
vcstool
Manage multiple repos with a .repos file — lego-like modularity
Remote Access & Display
🖥️
X11 Display Forwarding
Run GUI apps (RViz, Gazebo) from inside the container on your Windows desktop
🔐
SSH Server
Connect to the container remotely — useful for VS Code Remote or headless access
📟
tmux
Terminal multiplexer — run multiple sessions, split panes, detach and reattach
Editors & Debugging
✏️
nano + vim
Terminal text editors for quick edits inside the container
🐛
GDB Debugger
GNU debugger for C++ ROS2 nodes — add breakpoints, inspect crashes
🔌
Network Tools
net-tools, iproute2, curl, wget, ping — diagnose ROS2 DDS network issues
🐚
Zsh + Oh-My-Zsh
Enhanced shell with autocomplete, themes, and ROS2 plugin support
Set Up Your User
Running as root works but isn't recommended. A named user avoids permission headaches when mounting volumes from your host system.
User Type
👤
Custom User
Named non-root user. Matches your host UID for clean volume permissions
Recommended
👑
Root Only
Run as root. Simpler setup but not recommended for development
Lowercase letters, numbers, hyphens only
Match your host UID to avoid file permission issues
Privileges
🛡️
sudo (no password)
Allow installing packages and admin commands inside the container
Workspace
Where your ROS2 workspace will be created inside the container
Used in docker-compose.yml as the service name
Additional Configuration
📜
Auto-source ROS2 setup.bash
Automatically source /opt/ros/$ROS_DISTRO/setup.bash in .bashrc on startup
🔤
Set locale to UTF-8
Prevents ROS2 locale warnings and encoding issues at startup
Your Environment is Ready
Here are your generated files. Download them, drop them in a folder, and run docker compose up to start your ROS2 environment.
Configuration Summary
Dockerfile
docker-compose.yml
README.md

                

                

                
Ready to use · 2 files generated
Getting Started
If you are on Linux, you can skip steps 1 and 2.
01
Install Docker
Windows: Download Docker Desktop and enable WSL2. Linux: Install Docker Engine natively.
docs.docker.com/get-docker
02
Display Server (GUI)
Windows 11 uses WSLg automatically. Older Windows need VcXsrv. Linux runs X11 natively.
Linux / Win 11: Built-in
03
Place & Build
Put both files in a folder. Open a terminal in that folder (WSL or PowerShell).
docker compose build
04
Start & Explore
Launch your environment. Attach a shell and start building your robotics application.
docker compose up -d
05
Connect a Shell
Open a terminal inside your running container. Your workspace is at the path you configured.
docker exec -it ros2_dev bash
06
Stop When Done
Shut down the container cleanly. Your workspace volume persists between restarts.
docker compose down