多个Docker容器通过Ros通信

1.创建一个docker network

docker network create --subnet=172.172.1.0/24 rosnet

其中:
172.172.1.0 网段;24 掩码长度8*3;rosnet 网络名称,自取

2.启动docker的脚本指定相同的network

主要代码:--net rosnet --ip 172.172.1.101 --hostname hostcpp

c++的容器:

xhost +local:root;
docker run -it --rm \
  --net rosnet \
  --ip 172.172.1.101 \
  --hostname hostcpp \
  --env="DISPLAY" \
  --env="QT_X11_NO_MITSHM=1" \
  --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \
  --volume="/dev:/dev" \
  -v /home/agx/datasets:/home/datasets \
  -v /home/agx/project:/home/project \
  --runtime nvidia \
  less66/myslamcpp:1.0    /bin/bash 
  # service ssh start

python的容器:

xhost +local:root;
docker run -it --rm \
  --net rosnet \
  --ip 172.172.1.100 \
  --hostname hostpython \
  --env="DISPLAY" \
  --env="QT_X11_NO_MITSHM=1" \
  --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \
  --volume="/dev:/dev" \
  -v /home/agx/datasets:/home/datasets \
  -v /home/agx/project:/home/project \
  --runtime nvidia \
  less66/myslampython:1.0    /bin/bash 
  # service ssh start

3. 设置ROS_MASTER_URI

python(主机)的容器:

gedit ~/.bashrc
export ROS_MASTER_URI=http://172.172.1.100:11311
export ROS_HOSTNAME=172.172.1.100
export ROS_IP=172.172.1.100

c++(从机)的容器:

gedit ~/.bashrc
export ROS_MASTER_URI=http://172.172.1.100:11311
export ROS_HOSTNAME=172.172.1.101
export ROS_IP=172.172.1.101

你可能感兴趣的:(util,docker,容器,运维)