目录
1 安装 Docker
2 安装 ROS2
3 启动 Docker
4 测试 ROS2 环境
1 安装 Docker
1. 更新软件包
sudo apt update
sudo apt upgrade
2. 安装 docker 依赖
sudo apt-get install ca-certificates curl gnupg lsb-release
3. 添加 docker 官方 GPG 密钥
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
4. 添加 docker 软件源
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
5. 安装 docker
sudo apt-get install docker-ce docker-ce-cli containerd.io
6. 配置用户级
sudo usermod -aG docker $USER
# 默认情况下,只有 root 用户和 docker 组的用户才能运行 docker 命令。
# 可以将当前用户添加到 docker 组,以避免每次使用 docker 时都需要使用 sudo。
7. 激活对 docker 组的更改
newgrp docker
groups
8. 测试 docker 是否安装成功
docker image ls # 查看 docker 中已有的镜像
docker ps -a # 查看 docker 中已有的容器
9. 查看 docker 安装的状态
sudo systemctl status docker
2 安装 ROS2
1. 搜索 ubuntu下的 ROS2 镜像
docker search ubuntu22.04
# 或者
docker search ros2
# 我的电脑搜索后,出现了如下满足我要求的条目:
ryuichiueda/ubuntu22.04-ros2
2. 从 docker 仓库拉取镜像
docker pull ryuichiueda/ubuntu22.04-ros2
3. 再次查看 docker 中已有的镜像
docker image ls
# 列表中出现了类似如以下一条信息,表示 ROS 拉取成功 :
ryuichiueda/ubuntu22.04-ros2 latest 85a433146260 13 months ago 3.8GB
3 启动 Docker
1. 进入需要与 docker 关联的目录
cd ~/MyROS2
2. 启动 ROS2 命令行:
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=MyROS2 ryuichiueda/ubuntu22.04-ros2 /bin/bash
'参数 -v$(pwd):/data 是指将 ‘当前目录’ 挂载到 ROS2 容器根目录 data 文件夹下,
可以用来和宿主机进行文件交换'
4 测试 ROS2 环境
# 启动 ROS2 之后,执行下面的命令,测试 ROS2 环境
ros2 run turtlesim turtle_teleop_key
输出结果如下所示: