This guide sets up Docker and NVIDIA GPU support so you can build and run the RoboMME image.
Skip this if you already installed Docker.
Follow Docker’s official instructions for Ubuntu:
- Docker Engine install guide:
https://docs.docker.com/engine/install/ubuntu/
After installing, make sure the service is running:
docker run --rm hello-world2) Install NVIDIA Container Toolkit (GPU support)
Skip this if you already installed nvidia-ctk.
Install the toolkit (Ubuntu):
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | \
sudo gpg --dearmor --batch --yes -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -fsSL https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkitConfigure Docker to use the NVIDIA runtime and restart Docker:
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart dockerVerify GPU access inside a container:
docker run --rm --gpus all nvidia/cuda:12.8.0-base-ubuntu24.04 nvidia-smiFrom the repository root:
docker build -t <image_name>:<tag> .
# e.g., run `docker build -t robomme:cuda12.8 .`Run the container:
# Download `robomme_data_h5` from https://huggingface.co/datasets/Yinpei/robomme_data_h5
export robomme_data_path=<robomme_data_h5_path>
docker run --rm -it --gpus all \
-e NVIDIA_DRIVER_CAPABILITIES=compute,graphics,utility,video \
-v "$PWD/runs:/app/runs" \
-v "$robomme_data_path:/app/data/robomme_data_h5:ro" \
robomme:cuda12.8-e sets an environment variable inside the container (e.g., NVIDIA_DRIVER_CAPABILITIES).
-v mounts a host path into the container (a volume mount). Here we mount the host directories ./runs and $robomme_data_path to the container paths /app/runs and /app/data/robomme_data_h5 (read-only via :ro when specified).
You can adapt these parameters to your needs. Inside the container, /app is the main directory of the repo.
Run a sample script to verify the setup:
uv run ./scripts/run_example.pyTo stop Docker:
docker ps
docker stop <container_id_or_name>Alternatively, inside the container shell you can stop the session with exit (or Ctrl-D).
To rebuild the Docker image:
docker build --no-cache -t <image_name>:<tag> .To detach from the running container (without stopping it), press Ctrl-p then Ctrl-q.