| # Docker |
|
|
| This directory contains Dockerfiles for running LeRobot in containerized environments. Both images are **built nightly from `main`** and published to Docker Hub with the full environment pre-baked — no dependency setup required. |
|
|
| ## Pre-built Images |
|
|
| ```bash |
| # CPU-only image (based on Dockerfile.user) |
| docker pull huggingface/lerobot-cpu:latest |
| |
| # GPU image with CUDA support (based on Dockerfile.internal) |
| docker pull huggingface/lerobot-gpu:latest |
| ``` |
|
|
| ## Quick Start |
|
|
| The fastest way to start training is to pull the GPU image and run `lerobot-train` directly. This is the same environment used for all of our CI, so it is a well-tested, batteries-included setup. |
|
|
| ```bash |
| docker run -it --rm --gpus all --shm-size 16gb huggingface/lerobot-gpu:latest |
| |
| # inside the container: |
| lerobot-train --policy.type=act --dataset.repo_id=lerobot/aloha_sim_transfer_cube_human |
| ``` |
|
|
| ## Dockerfiles |
|
|
| ### `Dockerfile.user` (CPU) |
|
|
| A lightweight image based on `python:3.12-slim`. Includes all Python dependencies and system libraries but does not include CUDA — there is no GPU support. Useful for exploring the codebase, running scripts, or working with robots, but not practical for training. |
|
|
| ### `Dockerfile.internal` (GPU) |
|
|
| A CUDA-enabled image based on `nvidia/cuda`. This is the image for training — mostly used for internal interactions with the GPU cluster. |
|
|
| ## Usage |
|
|
| ### Running a pre-built image |
|
|
| ```bash |
| # CPU |
| docker run -it --rm huggingface/lerobot-cpu:latest |
| |
| # GPU |
| docker run -it --rm --gpus all --shm-size 16gb huggingface/lerobot-gpu:latest |
| ``` |
|
|
| ### Building locally |
|
|
| From the repo root: |
|
|
| ```bash |
| # CPU |
| docker build -f docker/Dockerfile.user -t lerobot-user . |
| docker run -it --rm lerobot-user |
| |
| # GPU |
| docker build -f docker/Dockerfile.internal -t lerobot-internal . |
| docker run -it --rm --gpus all --shm-size 16gb lerobot-internal |
| ``` |
|
|
| ### Multi-GPU training |
|
|
| To select specific GPUs, set `CUDA_VISIBLE_DEVICES` when launching the container: |
|
|
| ```bash |
| # Use 4 GPUs |
| docker run -it --rm --gpus all --shm-size 16gb \ |
| -e CUDA_VISIBLE_DEVICES=0,1,2,3 \ |
| huggingface/lerobot-gpu:latest |
| ``` |
|
|
| ### USB device access (e.g. robots, cameras) |
|
|
| ```bash |
| docker run -it --device=/dev/ -v /dev/:/dev/ --rm huggingface/lerobot-cpu:latest |
| ``` |
|
|