NVIDIA Isaac Sim / Isaac Lab 기반 시뮬레이션 환경 Docker 이미지
GitHub: docker_images/sim
| 태그 | 설명 | GPU | Ubuntu | ROS 2 | Isaac Sim |
|---|---|---|---|---|---|
isaac-sim-4.5.0-humble | Isaac Sim 4.5.0 + ROS 2 Humble + CycloneDDS | O | 22.04 | Humble | 4.5.0 |
isaac-sim-5.1.0-jazzy | Isaac Sim 5.1.0 + ROS 2 Jazzy + CycloneDDS | O | 24.04 | Jazzy | 5.1.0 |
isaac-lab-4.5.0-humble | 위 4.5.0-humble 베이스 + Isaac Lab v2.2.1 + RL FW | O | 22.04 | Humble | 4.5.0 |
isaac-lab-5.1.0-jazzy | 위 5.1.0-jazzy 베이스 + Isaac Lab v2.3.2 + RL FW | O | 24.04 | Jazzy | 5.1.0 |
docker pull hhanoo/sim:isaac-sim-4.5.0-humble
docker pull hhanoo/sim:isaac-sim-5.1.0-jazzy
docker pull hhanoo/sim:isaac-lab-4.5.0-humble
docker pull hhanoo/sim:isaac-lab-5.1.0-jazzy
nvcr.io/nvidia/isaac-sim:4.5.0ros-base + 핵심 패키지)rmw_cyclonedds_cpp (대형 센서 메시지 안정성)nvcr.io/nvidia/isaac-sim:5.1.0ros-base + 핵심 패키지)rmw_cyclonedds_cpphhanoo/sim:isaac-sim-4.5.0-humblersl_rl, rl_games, sb3, skrl/IsaacLabhhanoo/sim:isaac-sim-5.1.0-jazzyrsl_rl, rl_games, sb3, skrl/IsaacLab세 이미지 모두 같은 docker run 패턴(GPU + X11 + 캐시 볼륨)이라 run.sh 하나로 처리.
첫 실행 시 config.sh가 config.sh.example에서 자동 복사됨 (개인 설정용, gitignored).
cd sim/
# 기본 — config.sh의 IMAGE_NAME 사용 (기본값: isaac-sim-4.5.0-humble)
./run.sh
# CLI 인자로 태그 오버라이드
./run.sh isaac-sim-4.5.0-humble
./run.sh isaac-sim-5.1.0-jazzy
./run.sh isaac-lab-4.5.0-humble
config.sh 직접 수정 (자동 생성된 개인 설정 파일):
# config.sh
IMAGE_NAME="hhanoo/sim:isaac-lab-4.5.0-humble"
CONTAINER_NAME="my-isaac-lab"
ROS_DOMAIN_ID="42"
CACHE_ROOT="$HOME/docker/isaac-sim"
xhost +local:dockerxhost -local:docker다른 호스트 터미널에서:
docker exec -it isaac-sim-4.5.0-humble bash
진입 시 commands.sh가 자동 로드되어 다음 명령 사용 가능:
| 명령 | 설명 |
|---|---|
isaacsim | GUI 실행 (ROS 2 bridge 자동 활성화) |
isaacsim_headless | 헤드리스 실행 |
isaaclab | /IsaacLab/isaaclab.sh 래퍼 (Lab 이미지 한정) |
build | colcon build (/ros2_ws) |
cmd_help | 명령 목록 출력 |
# 빈 시뮬레이션 (Lab 동작 검증)
isaaclab -p scripts/tutorials/00_sim/create_empty.py
# Cartpole RL 학습 (헤드리스)
isaaclab -p scripts/reinforcement_learning/rsl_rl/train.py \
--task Isaac-Cartpole-v0 --headless
# 학습된 정책 시각화
isaaclab -p scripts/reinforcement_learning/rsl_rl/play.py \
--task Isaac-Cartpole-v0 --num_envs 32
캐시는 Isaac Sim 버전별로 분리 (run.sh가 자동 처리). 같은 폴더 공유 시 셰이더/Python wheel 충돌로 segfault 가능.
| 캐시 | 4.5 ↔ 5.1 호환 |
|---|---|
| Kit 셰이더 캐시 | ❌ Kit 버전 다름 (106.x vs 107.x) |
| pip wheel 캐시 | ❌ Python 버전 다름 (3.10 vs 3.12) |
| OpenGL/CUDA 캐시 | ⚠️ 셰이더 바이너리, 충돌 가능 |
| USD 에셋 캐시 | ⚠️ 일부 공유 가능하나 권장 안 함 |
→ run.sh가 ~/docker/isaac-sim/<version>/로 분리 마운트.
Isaac Lab 이미지는 베이스 4.5.0과 Kit·Python 버전이 같아 4.5.0/ 캐시 공유 안전.
[isaac-sim-4.5.0-humble] ⇄ [Humble + CycloneDDS 컨테이너] ✅
[isaac-sim-5.1.0-jazzy ] ⇄ [Jazzy + CycloneDDS 컨테이너] ✅
[isaac-sim-4.5.0-humble] ⇄ [isaac-sim-5.1.0-jazzy] ❌ distro 다름
--network hostROS_DOMAIN_ID 동일 (예: 98)RMW_IMPLEMENTATION=rmw_cyclonedds_cpp (entrypoint에서 자동 설정)컨테이너 ↔ 컨테이너 통신은 호스트 ROS 2 distro와 무관. 호스트는 단순 네트워크 패스스루 역할.
nvidia-container-toolkit)nvcr.io 이미지 pull용 (docker login nvcr.io)Content type
Image
Digest
sha256:5e8274ea7…
Size
9.3 GB
Last updated
6 months ago
docker pull hhanoo/sim:isaac-lab-5.1.0-jazzy