拉基础镜像

docker pull osrf/ros:noetic-desktop-full

新建dockerfile

FROM osrf/ros:noetic-desktop-full

RUN apt-get update \
    && apt-get install -y  build-essential git cmake-curses-gui net-tools vim libgoogle-glog-dev  libgflags-dev  libsuitesparse-dev libatlas-base-dev pcl-tools htop \
        # libgeographic-dev \
        libceres-dev \
    && apt-get install -y software-properties-common \
    && add-apt-repository -y ppa:borglab/gtsam-release-4.0 \
    && apt-get update \
    && apt-get install -y libgtsam-dev libgtsam-unstable-dev \
    && rm -rf /var/lib/apt/lists/*

SHELL ["/bin/bash", "-c"]
RUN cd / \
    && git clone https://github.com/geographiclib/geographiclib.git \
    && cd geographiclib \
    && cmake . \
    && make -j4 \
    && make install \
    && rm -rf /geographiclib

# 新建非root用户,且进入容器后,不需要sudo即可安装软件,贼好用, 
# 参考 https://stackoverflow.com/a/72780601
RUN useradd -m  -s /bin/bash xiaoming
RUN usermod -aG sudo xiaoming && echo "udeer ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/xiaoming
USER xiaoming:xiaoming
WORKDIR /home/xiaoming

编译docker

docker build -t dev_ubuntu2004:v1 -f Dockerfile_ubuntu2004 .

启动docker

docker run -it \
    -v /home/xxx/data:/data \
    -v /home/xxx/catkin_ws:/catkin_ws \
    --device=/dev/dri \
    --group-add video \
    --volume=/tmp/.X11-unix:/tmp/.X11-unix \
    --env="DISPLAY=$DISPLAY" \
    --env="QT_X11_NO_MITSHM=1" \
    --name=dev_ubuntu2004 \
    dev_ubuntu2004:v1 \
    /bin/bash

去除编译过程中产生的none镜像

去除前
在这里插入图片描述
去除指令参考 https://cloud.tencent.com/developer/article/1540703

docker rmi `docker image ls -f dangling=true -q`

去除none后
在这里插入图片描述

更多推荐