Docker基础操作指南:树莓派5+Ubuntu运行ROS2 Docker
Docker基础操作指南:树莓派5+Ubuntu运行ROS2 Docker
Docker是一种轻量级的容器化技术,与传统的虚拟机相比,它具有启动速度快、资源占用少等优点。ROS2(Robot Operating System 2)是机器人领域广泛使用的开源软件框架。本文将详细介绍如何在树莓派5+Ubuntu环境下使用Docker运行ROS2,包括Docker的安装、ROS2 Docker容器的配置以及Docker的基础命令使用。
1. 安装Docker
Docker官网介绍几种安装Docker的方式
https://docs.docker.com/engine/install/ubuntu/
- 安装Docker桌面应用:可以通过界面下载镜像/启动/关闭容器等操作,也可对通过界面对容器进行配置,如挂载目录,网络端口映射等,对于初学者较为友好。
- 安装Docker命令行工具:通过命令行进行所有操作,需要熟悉Docker常用命令的使用。
- 下载Docker deb程序,然后手动安装
- 使用脚本安装
通常我们安装Docker桌面应用或者命令行工具即可。这里安装Docker命令行工具。
配置软件源
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
安装Docker
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
运行hello-world示例
sudo docker run hello-world
查看创建的hello-world容器
2. 配置ROS2 Docker容器
2.1 参考ros2 humble文档
https://docs.ros.org/en/humble/How-To-Guides/Installing-on-Raspberry-Pi.html
2.2 下载ros2 Docker镜像
选择什么样的ros版本和版本选项,可参考
ROS2快速入门Python篇-版本梳理、环境搭建、源码架构介绍
https://blog.csdn.net/techfuture/article/details/137427653
这里选ros2 humble版本。
docker pull ros:humble-ros-core
2.3 运行humble-ros-core,生成一个新的容器
docker run -it --rm ros:humble-ros-core
docker run:创建一个新容器
-it:进入容器终端,并可通过指令交互
--rm:退出容器后,自动删除容器
此套指令通常用于启动一个临时的交互式容器,让用户可以在容器内执行命令并与其交互,且容器退出后自动删除,以保持系统的清洁和简洁。
注意,每次执行docker run都会产生一个新的容器,通常我们通过docker run --name创建指定名称的容器,后续使用docker start/stop/exec来启动/停止/进入该容器即可。具体操作可参考第3章Docker常用命令讲解章节。
3. Docker基础命令讲解
3.1 镜像管理
下载镜像
docker pull <image_name>
查看下载了哪些Docker镜像
docker images
删除image
sudo docker image rm hello-world:latest
注意区分docker image 和docker images
3.2 容器管理
创建容器
创建一个容器
docker run <image_name>
创建一个临时的交互式容器,让用户可以在容器内执行命令并与其交互,容器退出后自动删除。
docker run -it --rm <image_name>
创建名称为ros1的容器并挂载work目录
docker run -d -it --name=ros1 -v ~/work:/work <image_name>
docker run每次会生成一个新的容器,如果没有使用--name指定名称,docker ps显示的是随机名称,如下图。
启动容器
docker start <container_name>
关闭容器
docker stop <container_name>
docker start/stop:启动/关闭已有容器,不会删除容器中自己安装的软件和数据。
进入容器
docker exec -it <container_name> bash
查看运行容器
docker ps
查看容器配置信息
docker inspect <container_name>
删除容器
docker rm <container_name>
比如这里删除名为ros1的容器,删除后再使用docker ps -a查看,此容器已不存在。