0. 사전 준비
- docker --version ( 도커의 버전 확인 )
- 출력 : Docker version 28.1.1, build 4eba377
- docker info | grep "Operating System" ( docker가 wsl과 잘 연동 되었는지 확인 )
- 출력 : Operating System: Ubuntu 24.04.2 LTS
1. ros2 humble 컨테이너 실행
- -d : detached mode를 의미. 즉, 백그라운드로 실행
- -i : interactive를 의미. 즉,사용자 입력을 받음
- -t : tty 가상터미널 설정
- -a : attach. 즉, 출력연결
- --name : 컨테이너의 이름을 지정
- --network host : ros2의 dds통신을 위해서 host네트워크 사용
- ros:humble : docker hub의 공식 ros2 humble 이미지
- bash : 쉘로 진입
sudo docker run -dit --name humbleRos2 --network host ros:humble bash
sudo docker start -ai humbleRos2
2. source하기
source /opt/ros/humble/setup.bash
#필요시.....
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc
3. 예제를 위해서 다음과 같이 입력
apt update
apt install -y ros-humble-demo-nodes-cpp ros-humble-demo-nodes-py
source /opt/ros/humble/setup.bash
ros2 run demo_nodes_cpp talker
4. 다른 터미널에서 다음과 같이 입력
docker exec -it ros2_humble_test bash
source /opt/ros/humble/setup.bash
ros2 run demo_nodes_py listener
1. 마운트 한 상태에서 컨테이너 생성 ( -v 내_디렉토리:마운트시킬곳 )
sudo docker run -dit --name humbleRos2_mount --network host -v ~/ros2_ws:/root/ros2_ws ros:humble bash
1. gz sim install
# 1) 필수 툴 설치
apt update
apt install -y wget gnupg2 lsb-release
# 2) OSRF GPG 키 가져오기
wget https://packages.osrfoundation.org/gazebo.gpg \
-O /usr/share/keyrings/osrf-archive-keyring.gpg
# 3) apt 소스 리스트 추가
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/osrf-archive-keyring.gpg] \
http://packages.osrfoundation.org/gazebo/ubuntu-stable \
$(lsb_release -cs) main" \
> /etc/apt/sources.list.d/gazebo-stable.list
# 4) 패키지 인덱스 갱신
apt update
apt install -y ros-humble-ros-gzharmonic
echo "export GZ_VERSION=harmonic" >> ~/.bashrc
source ~/.bashrc
dockerfile
# ──────────────────────────────────────────────────────
FROM ros:humble
# 1) 시스템 의존성 & OSRF Gazebo 리포지토리 등록
RUN apt-get update && apt-get install -y \
wget gnupg2 lsb-release curl \
python3-colcon-common-extensions \
&& wget https://packages.osrfoundation.org/gazebo.gpg \
-O /usr/share/keyrings/osrf-archive-keyring.gpg \
&& echo "deb [arch=$(dpkg --print-architecture) \
signed-by=/usr/share/keyrings/osrf-archive-keyring.gpg] \
http://packages.osrfoundation.org/gazebo/ubuntu-stable \
$(lsb_release -cs) main" \
> /etc/apt/sources.list.d/gazebo-stable.list \
&& apt-get update
# 2) Gazebo Harmonic 브리지 설치
RUN apt-get install -y \
ros-humble-ros-gzharmonic \
&& rm -rf /var/lib/apt/lists/*
# 3) 기본 환경변수 설정
RUN echo "source /opt/ros/humble/setup.bash" >> /root/.bashrc \
&& echo "export GZ_VERSION=harmonic" >> /root/.bashrc
ENTRYPOINT ["/bin/bash", "-lc", "exec bash"]
# ──────────────────────────────────────────────────────
# 2. docker build -t ros2-humble-gzharmonic:latest .
# 3. sudo apt install -y x11-xserver-utils
# xhost +local:docker
# 4. docker run -it --rm \
--gpus all \
--device /dev/dri \
--name humbleSim \
--network host \
-e DISPLAY=$DISPLAY \
-e QT_X11_NO_MITSHM=1 \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v ~/ros2_ws:/root/ros2_ws \
ros2-humble-gzharmonic:latest
ndivia
distribution=ubuntu22.04 # 강제로 22.04로 설정 (24.04용은 아직 없음)
# GPG 키 등록
curl -fsSL https://nvidia.github.io/nvidia-docker/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
# 저장소 등록
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list \
| sed 's|^deb |deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] |' \
| sudo tee /etc/apt/sources.list.d/nvidia-docker.list > /dev/null
sudo apt update
sudo apt install -y nvidia-container-toolkit
sudo apt update
sudo apt install -y \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
distribution=ubuntu22.04
curl -s -L https://nvidia.github.io/libnvidia-container/stable/$distribution/libnvidia-container.list \
| sed 's#deb #deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] #' \
| sudo tee /etc/apt/sources.list.d/libnvidia-container.list
curl -s -L https://nvidia.github.io/nvidia-container-runtime/stable/$distribution/nvidia-container-runtime.list \
| sed 's#deb #deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] #' \
| sudo tee /etc/apt/sources.list.d/nvidia-container-runtime.list
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list \
| sed 's#deb #deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] #' \
| sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt update
sudo apt install -y \
nvidia-docker2 \
nvidia-container-toolkit
sudo systemctl restart docker
docker run --rm --gpus all \
nvidia/cuda:11.8.0-base-ubuntu22.04 \
nvidia-smi'docker' 카테고리의 다른 글
| docker image build (0) | 2024.09.20 |
|---|---|
| docker logs , pause , unpause , stop (0) | 2024.09.10 |
| docker image ls, run -d , ps , ps -a , rm -f , inspect , pull , create , start (2) | 2024.09.10 |
| docker repository , image tag (0) | 2024.09.10 |
| docker install 및 컨테이너 run rm (0) | 2024.09.10 |