안녕하십니까, 아래 단계를 통해 ubunt 22.04 도커 설정을 하시면 됩니다.
- docker 설치
sudo apt update
sudo apt install -y docker.io
sudo systemctl enable --now docker
sudo usermod -aG docker $USER
newgrp docker
- ros2 이미지 받기
docker pull osrf/ros:humble-desktop
jetson의 경우, 아래 명령어를 실행해주세요.
docker pull dustynv/ros:humble-desktop-l4t-r36.2.0
- GUI 권한 허용 (터미널로 실행하는 경우 이를 실행해야 rviz등의 gui가 켜집니다.)
xhost +local:docker
- 컨테이너 실행
docker run -it \
--network host \
--privileged \
-e DISPLAY=$DISPLAY \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v /dev:/dev \
osrf/ros:humble-desktop \
bash
위와 같이 root@user:/#이 나타나며, 여기서 작업을 실행하면 됩니다.
docker 환경에서 빠져나오기 위해서는 exit을 입력하시면 됩니다.
만약 여러 터미널에서 docker를 사용하고자 하는 경우, 아래처럼 실행하시면 됩니다.
(1) 최초 사용 터미널
# 일반 PC
docker run -it \
--name ros2_humble \
--network host \
--privileged \
-e DISPLAY=$DISPLAY \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v /dev:/dev \
-v $(pwd):/workspace \
-w /workspace \
osrf/ros:humble-desktop \
bash
# Jetson의 경우
docker run -it \
--name ros2_humble \
--network host \
--privileged \
-e DISPLAY=$DISPLAY \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v /dev:/dev \
-v $(pwd):/workspace \
-w /workspace \
dustynv/ros:humble-desktop-l4t-r36.2.0 \
bash
-v $(pwd):/workspace는 $(pwd)가 현재 터미널 경로를 자동으로 가져와 컨테이너의 /workspace 폴더와 연결해주고 동기화되도록 해줍니다. workspace의 이름은 자유롭게 지정할 수 있습니다.
사진과 같이 나타나는 workspace에 들어가면, 컨테이너를 만들 당시 있던 경로인
wego_km_ws의 내용물이 있습니다.
특정 경로를 고정으로 마운트하고 싶으시다면 $(pwd)대신 절대 경로로 써도 됩니다.
예) -v /home/wego/wego_ws:/workspace
-w /workspace는 컨테이너 시작 시 위치입니다.
만약 /home/usr로 시작하고 싶다면,
docker run -it \
--name ros2_humble \
--network host \
--privileged \
-e DISPLAY=$DISPLAY \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v /dev:/dev \
-v /home/usr:/home/usr \
-w /home/usr \
osrf/ros:humble-desktop \ # 자신의 버전에 맞게 사용
bash
와 같이 실행하면 됩니다.
예시와 같이 usr가 wego라면 /home/wego로 지정하면 됩니다. 그렇게 하면 호스트에서와 같이 사용할 수 있습니다.
(2) 이후 추가하는 터미널
docker exec -it ros2_humble bash