• ubuntu用Dockerfile配置ros+cuda+torch镜像及rviz可视化


    dockerfile配置ros+cuda+torch镜像及rviz可视化

    Dockerfile

    因工作环境,需要有深度学习的那一套环境,还要用到一些可视化的东西,比如rviz、open3d等。
    下面从docker hub上找到一个合适的基础镜像,在此基础之上,进行ros的配置,Dockerfile如下:

    FROM pytorch/pytorch:1.8.0-cuda11.1-cudnn8-devel
    ARG DEBIAN_FRONTEND=noninteractive
    RUN sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list
    
    # nvidia-container-runtime
    ENV NVIDIA_VISIBLE_DEVICES \
        ${NVIDIA_VISIBLE_DEVICES:-all}
    ENV NVIDIA_DRIVER_CAPABILITIES \
        ${NVIDIA_DRIVER_CAPABILITIES:+$NVIDIA_DRIVER_CAPABILITIES,}graphics
    
    RUN apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub
    RUN apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/7fa2af80.pub
    
    RUN apt-get update \
      && apt-get install -y lsb-release gnupg
    
    RUN sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
    RUN apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
    
    RUN apt-get update \
     && apt-get install -y ros-melodic-desktop-full \
     && apt-get install -y vim inputils-ping \
     && echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc \
     && apt-get -y update --fix-missing \
     && apt-get clean \
     && rm -rf /var/lib/apt/lists/*
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    dockerfile创建完成后即可执行docker build生成镜像,在dockerfile文件下开启终端运行:
    $ docker build -t docker_image_name .
    
    • 1
    • 2

    创建容器

    创建一个shell脚本run_my_image.bash

    docker run -it \
    	--gpus all \
    	--shm-size 8g \
        --env="DISPLAY=$DISPLAY" \
        --env="QT_X11_NO_MITSHM=1" \
        --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \
        --volume="$HOME/.Xauthority:/root/.Xauthority:rw" \
        --runtime=nvidia \
        --name docker_test \
        -p 8888:22 \
        docker_images \
        bash -c "roscore & rviz"
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    这里--net采用默认的bridge模式,如果在其他机器上进入容器rviz界面会在宿主机上显示,并不是在你运行容器的机器上显示,这个问题解决办法: 在创建容器的时候加上--net=host,可以解决该问题,但端口映射又会存在无法映射的问题,继续尝试中。。。。。。。。
    插个眼,回头完美解决后再来补充。。。。

  • 相关阅读:
    关于自动化测试工具selenium
    2022最新版JDK1.8的安装教程、包含jdk1.8的提取码(亲测可用)
    【每日一题】AcWing 5271. 易变数 | 思维 | 中等
    (4)全局路径切换、换道策略
    linux centos7提示 cannot found font installed on the system.calibri
    基于RabbitMQ的模拟消息队列之五——虚拟主机设计
    深入浅出 《if的表达式》
    22-08-29 西安 JUC(02)线程安全集合类、 juc强大的辅助类
    JAVA IDEA 下载
    【AI设计模式】机器学习设计模式概述
  • 原文地址:https://blog.csdn.net/qq_39506862/article/details/125558677