ubuntu18.04环境下部署ROS2 docker镜像全步骤

  • sudo docker run -d --privileged=true --runtime=nvidia 
    --gpus=all --net=host --ipc=host --restart=always -v 
    /dev:/dev -v /data/autocar:/home/mogo/data --name 
    map_test mogohub.tencentcloudcr.com/autocar-ros2/df:mystart_RoboTaxi_df_1.0.0.30_ros2_202
    30524_dev

        这是一个在 Docker 中运行机器学习应用程序的命令,该命令将该应用程序作为 Docker 镜像运行,并使用 NVIDIA GPU 进行加速。

        具体来说,该命令的各个参数含义如下:

  • sudo: 以管理员权限运行该命令。
  • docker run: 运行 Docker 容器的命令。
  • -d: 让容器在后台运行。
  • --privileged=true: 以特权模式运行容器,可以访问主机的所有设备。
  • --runtime=nvidia: 指定容器使用 NVIDIA GPU 运行。
  • --gpus=all: 将所有可用的 GPU 分配给容器。
  • --net=host: 使用主机网络模式,容器与主机共享网络栈。
  • --ipc=host: 使用主机 IPC(Inter-Process Communication)命名空间,容器与主机共享 IPC。
  • --restart=always: 容器停止后自动重启。
  • -v /dev:/dev: 将主机的 /dev 目录挂载到容器的 /dev 目录中,以便容器可以访问主机的设备。
  • -v /data/autocar:/home/mogo/data: 将主机的 /data/autocar 目录挂载到容器的 /home/mogo/data 目录中,以便容器可以访问主机的数据。
  • --name map_test: 给容器指定一个名称为 map_test
  • mogohub.tencentcloudcr.com/autocar-ros2/df:mystart_RoboTaxi_df_1.0.0.30_ros2_20230524_dev: 指定要运行的 Docker 镜像名称和版本号。

        综上所述,该命令的作用是以特权模式运行一个 Docker 容器,使用 NVIDIA GPU 进行加速,让容器与主机共享网络和 IPC 命名空间以及主机设备和数据,以便运行该镜像中包含的机器学习应用程序。

  • sudo docker pull mogohub.tencentcloudcr.com/autocar
    /system-redis:system-redis_CDXTJG_Default_1.0.0.2_6_
    log_20230329_dev

      该命令的作用是从指定的 Docker 镜像仓库中拉取一个名为 mogohub.tencentcloudcr.com/autocar/system-redis,版本号为 system-redis_CDXTJG_Default_1.0.0.2_6_log_20230329_dev 的 Docker 镜像。拉取镜像后,可以使用 docker run 命令来启动该镜像中包含的应用程序或服务。

  • mkdir -p /data/autocar/log/redis

  • sudo docker run -d --privileged --network host -v /data/autocar/log/redis:/var/log/redis:rw --restart=always --name redis redis镜像名

配置修改:

1. /opt/ros/humble/etc/redis_conn_conf.json autocar镜像里面ip改为虚拟机ip。坑点:记得同步改/run.sh 里面的ip,否则restart容器后发现配置被还原了。然后重启autocar镜像即可

2. redis镜像里面执行:执行这个命令(docker里面默认没有安装vim等编辑软件)echo -e '#!/bin/bash\nredis-server /etc/redis/redis.conf' > /run.sh(默认是实车上,有实车ip判断)去掉判断行。重启redis镜像

猜你喜欢

转载自blog.csdn.net/John_ToStr/article/details/130877293