问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Docker基础操作指南:树莓派5+Ubuntu运行ROS2 Docker

创作时间:
作者:
@小白创作中心

Docker基础操作指南:树莓派5+Ubuntu运行ROS2 Docker

引用
CSDN
1.
https://blog.csdn.net/techfuture/article/details/137981615

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/
  1. 安装Docker桌面应用:可以通过界面下载镜像/启动/关闭容器等操作,也可对通过界面对容器进行配置,如挂载目录,网络端口映射等,对于初学者较为友好。
  2. 安装Docker命令行工具:通过命令行进行所有操作,需要熟悉Docker常用命令的使用。
  3. 下载Docker deb程序,然后手动安装
  4. 使用脚本安装

通常我们安装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查看,此容器已不存在。

3.3 更多命令使用,可通过docker --help查询

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号