记录 Docker 中安装 ROS2

本文详细介绍了如何在Ubuntu系统上安装Docker,配置用户权限,以及安装并测试ROS2环境的过程,包括拉取镜像、启动ROS2容器和验证环境。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

 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

  输出结果如下所示:

### 卸载安装Docker 容器中的 ROS 对于已经通过 Docker 部署并运行的 ROS 环境而言,卸载操作主要集中在移除相关的 Docker 容器、镜像以及清理残留的数据卷。具体做法如下: #### 移除特定容器内的 ROS 应用环境 如果仅需删除某个含有 ROS 的容器而保留其他数据,则可以先停止目标容器再将其彻底移除。 ```bash docker rm -f <container_name_or_id> ``` 上述命令会强制终止指定名称或 ID 对应的正在运行之容器实例,并同步清除其资源占用情况[^2]。 #### 彻底清理所有与 ROS 相关联的组件 当希望连同由该应用所创建的一切附属物一并处理掉时——比如之前构建过的自定义镜像或是挂载出去的数据存储空间等,那么应当执行更为全面的操作流程来达成目的。 - **停止所有活动中的容器** ```bash docker stop $(docker ps -aq) ``` - **批量销毁全部存在的容器对象** ```bash docker rm $(docker ps -aq) ``` - **清空不再使用的本地镜像记录** ```bash docker rmi $(docker images | grep "none" | awk '/ / { print $3 }') ``` - **去除未被任何实体引用的数据卷集合** ```bash docker volume prune ``` 以上步骤能够有效地释放因长期积累造成的磁盘冗余负担,同时也间接实现了对曾经部署过 ROS 平台痕迹的有效抹去工作。 #### 特殊场景下的额外措施 考虑到某些情况下可能还存在一些特殊定制化配置文件或者其他形式关联到主机系统的外部依赖项,在正式实施前最好提前做好充分准备,例如备份重要资料、查阅官方文档确认是否存在特别说明事项等等。另外值得注意的是,假如是基于 ADE (Autoware Development Environment) 构建起来的工作区的话,记得按照相应指南完成退出当前 session 后重启系统等一系列收尾动作以确保变更生效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值