Docker와 ROS2의 만남

이시우·2024년 1월 31일
0

Docker& ROS2

목록 보기
1/1

docker 설치하기 이전에 설치될 수 있었던 데이터들을 미리 제거하고 설치를 하는 과정이다.

sudo apt install gnome-terminal
sudo apt remove docker-desktop
rm -r $HOME/.docker/desktop
sudo rm /usr/local/bin/com.docker.cli
sudo apt purge docker-desktop

HTTP setting

sudo apt-get update
sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

add GPG key

sudo mkdir -m 0755 -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

저장소 설정

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo docker run hello-world

아래와 같이 나오면 설치가 성공한 것이다.

Install Docker Desktop on Ubuntu

https://docs.docker.com/desktop/install/ubuntu/

gpg --generate-key
sudo apt-get update

해당 url에서 DEB package 클릭하면, 다음과 같이 .deb파일을 다운받을 수 있다.

# sudo apt-get install ./docker-desktop-<version>-<arch>.deb
sudo apt-get install ./docker-desktop-4.26.1-amd64.deb
systemctl --user start docker-desktop
systemctl --user enable docker-desktop

이렇게 명령어를 작성해주면, docker desktop.exe 파일을 실행할 수 있다.

하지만, login을 눌러도 로그인이 되지않는 현상을 확인할 수 있다.

enable Login

https://docs.docker.com/desktop/get-started/

gpg --generate-key

위의 명령어를 작성할 때 아래와 같은 예시로 입력해줘야한다. 모든 정보를 입력하면 다음과 같은 그림처럼 나오게 된다.

나의 경우,

real name : ...

Email address : ...@gmail.com 이라고 입력했다.

...
GnuPG needs to construct a user ID to identify your key.

Real name: Molly
Email address: molly@example.com
You selected this USER-ID:
   "Molly <molly@example.com>"

Change (N)ame, (E)mail, or (O)kay/(Q)uit? O
...
pubrsa3072 2022-03-31 [SC] [expires: 2024-03-30]
 <generated gpg-id public key>
uid          Molly <molly@example.com>
subrsa3072  2022-03-31 [E] [expires: 2024-03-30]
# pass init <your_generated_gpg-id_public_key>
pass init ... '...@gmail.com'

위의 명령어를 치면, 다음과 같은 명령의 결과가 출력된다.

mkdir: created directory '/home/.../.password-store/'
Password store initialized for ... '...@gmail.com'

다시 docker desktop으로 이동해서 docker 로그인을 하자.

Test for Docker-ros2

https://docs.ros.org/en/humble/How-To-Guides/Run-2-nodes-in-single-or-separate-docker-containers.html

docker pull osrf/ros:humble-desktop
docker run -it osrf/ros:humble-desktop
root@<2136876316>:/#
root@<2136876316>:/# ros2 pkg list
root@<2136876316>:/# ros2 pkg executables
root@<2136876316>:/#  ros2 run demo_nodes_cpp listener &
ros2 run demo_nodes_cpp talker

run two container

one terminator

docker run -it --rm osrf/ros:humble-desktop ros2 run demo_nodes_cpp talker

other terminator

docker run -it --rm osrf/ros:humble-desktop ros2 run demo_nodes_cpp listener
```![](https://velog.velcdn.com/images/ed-_-b9/post/0805345d-141d-4043-9165-f076a2a3c593/image.png)
profile
가까운 듯 먼 AI를 이해하는 과정

0개의 댓글

관련 채용 정보