Docker 사용자 정의 네트워크로 ROS2 노드 간 통신해보기

Garam·2025년 7월 18일
0
post-thumbnail

요즘 회사에서 기기들을 직결시켜놓고 통신을 많이 하는데, 문득 도커 컨테이너를 두개 띄우고 같은 대역을 사용하는 두개의 네트워크를 각각 사용하게 하면 똑같은 것이 아닌가해서 한번 직접 시도해봤다.


먼저 다음 명령어로 rosnet라는 도커 브릿지 네트워크를 만들었다. 이 명령을 실행하면 docker0 외에 새로운 브릿지 인터페이스가 시스템에 생성된다.

docker network create --subnet=192.168.1.0/24 rosnet

만든 후에는 다음과 같이 새로운 인터페이스가 등장한다. 브로드캐스트도 된다.


이후 같은 대역의 두 네트워크를 두 컨테이너에 할당해서 실행한다. 두 컨테이너 내부에서 각각 demo_nodes_cpptalkerlistener를 실행하니 예상대로 통신이 잘 되는것을 확인할 수 있었다.


Wireshark를 실행하면 내가 만든 네트워크 인터페이스의 패킷을 조회할 수 있으며 UDP를 통해 RTPS 패킷이 교환되고 있음을 확인할 수 있다.


이제 잘되는것을 확인했으니 ifconfig를 클린하게 되돌리기위해 방금 만든 네트워크를 지워보자. docker network ls를 실행하면 다음과 같이 내가 만든 네트워크를 볼 수 있다.


아래 명령어로 네트워크를 지워준다.

docker network rm rosnet

네트워크를 지우자마자 해당 인터페이스를 조회중이던 와이어샤크는 인터페이스가 사라짐에 따라 자동으로 캡처를 중단한다.



0개의 댓글