题目 在一台ubuntu 20.04的宿主机中分别启动2个类似版本的docker容器
docker 1启动下令:
- xhost +
- docker run -it --privileged=true --net=host \
- --gpus all \
- --env="DISPLAY" \
- --env="QT_X11_NO_MITSHM=1" \
- --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \
- -v /home/root/contain:/root/dataset \
- --name useros1 ubuntu:22.04 /bin/bash
复制代码 docker 2启动下令:
- xhost +
- docker run -it --privileged=true --net=host \
- --gpus all \
- --env="DISPLAY" \
- --env="QT_X11_NO_MITSHM=1" \
- --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \
- -v /home/root/contain:/root/dataset \
- --name useros2 ubuntu:22.04 /bin/bash
复制代码 定义类似的ROS_DOMAIN_ID,在容器1 中pub 数据,在容器2 中sub不到数据。
解决题目:修改docker启动下令
docker1 启动下令
- xhost +
- docker run -it --privileged=true --net=host \
- --gpus all \
- -p 11311:11311 \
- --env="DISPLAY" \
- --env="QT_X11_NO_MITSHM=1" \
- --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \
- --volume="/dev:/dev" \
- -v /home/root/contain:/root/dataset \
- --name useros1 ubuntu:22.04 /bin/bash
复制代码 docker2 启动下令
- xhost +
- docker run -it --privileged=true --net=host \
- --gpus all \
- -p 11311:11311 \
- --env="DISPLAY" \
- --env="QT_X11_NO_MITSHM=1" \
- --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \
- --volume="/dev:/dev" \
- -v /home/root/contain:/root/dataset \
- --name useros2 ubuntu:22.04 /bin/bash
复制代码 再次设置类似的ROS_DOMAIN_ID,此时docker1和docker2的ros2消息可以互相通信
有大佬懂得,批评区欢迎留言解答
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |