Warning
You're reading the documentation for a version of ROS 2 that has reached its EOL (end-of-life), and is no longer officially supported.
If you want up-to-date information, please have a look at Jazzy.
Running 2 nodes in 2 separate docker containers [community-contributed]
Open a terminal. Run the image in a container in interactive mode and launch a topic publisher (executable talker
from the package demo_nodes_cpp
) with ros2 run
:
docker run -it --rm osrf/ros:eloquent-desktop ros2 run demo_nodes_cpp talker
Open a second terminal. Run the image in a container in interactive mode and launch a topic subscriber (executable listener
from the package demo_nodes_cpp
) with ros2 run
:
docker run -it --rm osrf/ros:eloquent-desktop ros2 run demo_nodes_cpp listener
As an alternative to the command line invocation, you can create a docker-compose.yml
file (here version 2) with the following (minimal) content:
version: '2'
services:
talker:
image: osrf/ros:eloquent-desktop
command: ros2 run demo_nodes_cpp talker
listener:
image: osrf/ros:eloquent-desktop
command: ros2 run demo_nodes_cpp listener
depends_on:
- talker
To run the containers call docker-compose up
in the same directory. You can close the containers with Ctrl+C
.