Ubuntu 22.04中安装docker及ROS镜像,以及在docker中运行rviz

一、安装docker

1、使用阿里云镜像一键安装

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

2、如果一键安装有问题,则可以选择手动安装

1)卸载旧版本

sudo apt-get remove docker docker-engine docker.io containerd runc

2)安装依赖

sudo apt-get update
sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

3)安装GPG证书

sudo mkdir -p /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

4)设置存储库

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

5)安装docker

sudo apt-get update

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

6)验证是否安装成功

sudo docker run hello-world

如果出现如下信息则安装成功

Ubuntu 22.04中安装docker及ROS镜像,以及在docker中运行rviz_第1张图片

 二、Docker中安装ROS容器

1、首先pull一个ROS的docker镜像,我这里用的是melodic版本,自己想用什么版本更改名字即可。

sudo docker pull osrf/ros:melodic-desktop-full

这里放个版本对于ubuntu系统的图以供参考:

Ubuntu 22.04中安装docker及ROS镜像,以及在docker中运行rviz_第2张图片

Ubuntu 22.04中安装docker及ROS镜像,以及在docker中运行rviz_第3张图片

2、由于第一步安装的ROS是没有实际项目所需要的环境依赖,所以我这里又编写了一个Dockerfile文件,用这个文件重新创建一个带依赖的ROS镜像。

该文件随便放一个文件夹,dockerfile文件内容如下:

FROM osrf/ros:melodic-desktop-full

# 如果机器带显卡,可以放开这里,我没用到,所以注释了
# ENV NVIDIA_VISIBLE_DEVICES \
# ${NVIDIA_VISIBLE_DEVICES:-all}

# ENV NVIDIA_DRIVER_CAPABILITIES \
# ${NVIDIA_DRIVER_CAPABILITIES:+$NVIDIA_DRIVER_CAPABILITIES,}graphics

# 自己需要什么依赖在这里加即可
RUN apt-get update && \
apt-get install -y \
libeigen3-dev \
libgoogle-glog-dev \
vim

在该文件路径下,打开终端,执行命令:(其中rocker为镜像的名称,可自定义)

docker build -f Dockerfile -t rocker .

执行完后用命令查看是否成功创建rocker这个镜像,有这个镜像则成功。

sudo docker images

执行命令利用上一步创建的镜像来创建容器:(其中 -v$(pwd):/data参数是指将当前目录挂载到ROS容器根目录data文件夹下,可以用来和宿主机进行文件交换),在docker run这一步命令中,我没注意到我参考的其他博主带的 --rm 参数,这个参数是指每次运行完,容器会自动删除。当时搞了我好久。

xhost +
sudo docker run -it -v$(pwd):/data --device=/dev/dri --group-add video --volume=/tmp/.X11-unix:/tmp/.X11-unix  --env="DISPLAY=$DISPLAY"  --name=catkin_rocker catkin_docker:latest  /bin/bash

查看容器ID及状态:

sudo docker ps -a

终端进入容器,并打开roscore:

sudo docker exec -it your-docker-id /bin/bash
roscore

在打开一个终端,进入容器并执行rviz

Ubuntu 22.04中安装docker及ROS镜像,以及在docker中运行rviz_第4张图片

至此,所有步骤及环境安装完毕。开始愉快的仿真吧。

你可能感兴趣的:(ROS,docker,ubuntu)