docker 容器中的 运行 ROS 和同一 docker 网络(非主机网络)中另一个 docker 容器中的 echo/pub
Running ROS in docker container and echo/pub from another docker container within same docker network (non-host network)
我正在 运行 在一个 docker 容器中使用 ROS,并尝试使用 rosnode 列表检查来自另一个容器的信息,它们都在同一个自定义 docker 网络下(非主持人)。
从 docker 方面来看,我很确定其中两个容器可以相互通信,因为我已经尝试从 container2 ping container1
不丢失任何数据包。
container1 IP为172.22.0.2
,container2 IP为172.22.0.3
我已经将两个容器的配置设置如下:
容器 1 export ROS_IP=172.22.0.2 export ROS_MASTER_URL=http://172.22.0.2:11311/
容器 2 export ROS_IP=172.22.0.3 export ROS_MASTER_URL=http://172.22.0.2:11311/
之后,我开始在container1上运行 roscore
,在container2上输入命令rosnode list
,但是container2显示错误信息:Unable to communicate with master!
似乎即使我为两个容器都设置了 ros master url,我仍然无法在容器之间共享相同的 roscore。
是否有任何遗漏或我做的不正确?
您需要的环境变量是 ROS_MASTER_URI
而不是 ROS_MASTER_URL
。前者设置为主IP。
我正在 运行 在一个 docker 容器中使用 ROS,并尝试使用 rosnode 列表检查来自另一个容器的信息,它们都在同一个自定义 docker 网络下(非主持人)。
从 docker 方面来看,我很确定其中两个容器可以相互通信,因为我已经尝试从 container2 ping container1
不丢失任何数据包。
container1 IP为172.22.0.2
,container2 IP为172.22.0.3
我已经将两个容器的配置设置如下:
容器 1 export ROS_IP=172.22.0.2 export ROS_MASTER_URL=http://172.22.0.2:11311/
容器 2 export ROS_IP=172.22.0.3 export ROS_MASTER_URL=http://172.22.0.2:11311/
之后,我开始在container1上运行 roscore
,在container2上输入命令rosnode list
,但是container2显示错误信息:Unable to communicate with master!
似乎即使我为两个容器都设置了 ros master url,我仍然无法在容器之间共享相同的 roscore。
是否有任何遗漏或我做的不正确?
您需要的环境变量是 ROS_MASTER_URI
而不是 ROS_MASTER_URL
。前者设置为主IP。