警告

您正在阅读的 ROS 2 文档版本已达到 EOL(生命周期结束),不再受官方支持。如果您想了解最新信息,请访问 Jazzy.

在 Docker 中运行 ROS 2 节点 [社区贡献]

在一个 docker 容器中运行两个节点

调用带有 "eloquent-desktop "标签的 ROS docker 镜像。

装卸工 拉绳 osrf/ros:eloquent-desktop

以交互模式在容器中运行映像。

$ 装卸工 运行 -它 osrf/ros:eloquent-desktop root@<container-id>:/#

你最好的朋友是 玫瑰2 命令行帮助。

root@<container-id>:/# 玫瑰2 --帮助

例如,列出所有已安装的软件包。

root@<container-id>:/# 玫瑰2  清单
(  看看 a 清单  套餐)

例如,列出所有可执行文件:

root@<container-id>:/# 玫瑰2  可执行程序
(  看看 a 清单  <package>; <可执行>;)

运行 2 个 C++ 节点的最小示例(1 个主题订阅者 听众1 个专题出版商 话匣子)从软件包 演示节点 在这个容器中:

玫瑰2 运行 演示节点 听众 及样品;
玫瑰2 运行 演示节点 话匣子

在两个独立的 docker 容器中运行两个节点

打开终端。以交互模式运行容器中的映像,并启动主题发布器(可执行 话匣子 从包装 演示节点)与 玫瑰2 运行:

装卸工 运行 -它 --rm osrf/ros:eloquent-desktop 玫瑰2 运行 演示节点 话匣子

打开第二个终端。以交互模式运行容器中的映像,并启动主题订阅者(可执行 听众 从包装 演示节点)与 玫瑰2 运行:

装卸工 运行 -它 --rm osrf/ros:eloquent-desktop 玫瑰2 运行 演示节点 听众

作为命令行调用的替代方法,您可以创建一个 docker-compose.yml 文件(此处为第 2 版),内容如下(最少):

版本: '2'

服务:
  话匣子:
    图像: osrf/ros:eloquent-desktop
    指挥部: ros2 run demo_nodes_cpp talker
  听众:
    图像: osrf/ros:eloquent-desktop
    指挥部: ros2 运行 demo_nodes_cpp 监听器
    取决于:
      - 话匣子

要运行容器,请调用 docker-compose 向上 在同一目录下。您可以使用 Ctrl+C.