如何在ubuntu24中,使用docker 运行ros2 humble版本

在 Ubuntu 24.04 中使用 Docker 运行 ROS 2 Humble 是最稳妥的方案,能完美绕过系统版本不兼容的问题。这里为你整理了一份"开箱即用"的配置流程。

  1. 安装并配置 Docker

如果你的系统尚未安装 Docker,执行以下命令:

bash

复制

安装 Docker

sudo apt update

sudo apt install docker.io

将当前用户加入 docker 组(避免每次输 sudo)

sudo usermod -aG docker $USER

重新登录或重启终端生效

newgrp docker

验证安装:docker --version

  1. 拉取 ROS 2 Humble 镜像

直接拉取官方预构建的桌面版镜像(内含 RViz、Gazebo 等 GUI 工具):

bash

复制

docker pull osrf/ros:humble-desktop

若需极简版(仅命令行),可改用 humble-ros-base。

  1. 启动容器(完整开发配置)

为了在容器内进行开发并显示图形界面(如 Rviz),使用以下命令启动:

bash

复制

允许 Docker 访问 X11 图形服务

xhost +local:docker

启动 Humble 容器(推荐配置)

docker run -it --rm

--name ros2_humble

--network=host \ # 使用主机网络,方便与宿主机通信

--env="DISPLAY=KaTeX parse error: Expected 'EOF', got '#' at position 17: ...ISPLAY" \ #̲ 传递显示变量 --env...HOME/ros2_ws:/root/ros2_ws" \ # 挂载工作空间(宿主机:容器)

osrf/ros:humble-desktop

bash

  1. 容器内验证环境

进入容器后,执行以下命令测试环境:

bash

复制

加载环境(官方镜像通常已自动加载,手动执行更保险)

source /opt/ros/humble/setup.bash

验证版本

ros2 --version # 应输出: ros2 version humble

测试小乌龟(需图形支持)

ros2 run turtlesim turtlesim_node

如果能看到小乌龟窗口,说明 GUI 和 ROS 环境均配置成功 。

  1. 开发工作流建议

代码编辑:在宿主机(Ubuntu 24.04)上用 VSCode 编辑 ~/ros2_ws下的代码。

编译运行:在 Docker 容器内执行 colcon build和 ros2 run。

多终端:如需新开终端进入正在运行的容器,使用:

bash

复制

docker exec -it ros2_humble bash

⚠️ 常见问题排查

GUI 无法显示:确保宿主机已安装 X11,并正确执行了 xhost +local:docker。

网络不通:上述命令使用了 --network=host,容器与宿主机网络互通。若使用 bridge 模式,需注意端口映射。

性能优化:如需 GPU 加速(如运行 Gazebo),需额外添加 --gpus all参数(需提前安装 NVIDIA Container Toolkit)。

此方案将 Humble 环境完全隔离在容器中,既利用了 Ubuntu 24.04 的新特性,又保证了 ROS 2 项目的稳定运行

相关推荐
谢白羽1 分钟前
从传统运维到 AI Infra: K8s 上调度 100 张 GPU踩坑笔记
运维·人工智能·缓存·kubernetes·vllm·sglang·vllm-omni
ai_coder_ai24 分钟前
使用Web IDE边写自动化脚本
运维·前端·自动化
wacsii25 分钟前
【Linux基础开发工具(五)】Git版本控制器从入门到实战:核心操作三板斧与新手避坑指南
linux·运维·服务器
zhongben123_36 分钟前
从零开发一个打车APP:技术选型、系统架构与成本评估指南
大数据·运维·ios·系统架构·uni-app·web app
FII工业富联科技服务41 分钟前
服务器开始按柜交付 数据中心需要具备怎样的承接能力
大数据·运维·服务器·人工智能·自动化·制造
死磕音视频1 小时前
Dify 入门:用 Docker 自部署并搭建知识库问答助手
docker·知识库·dify·大模型应用
李迟1 小时前
Nginx容器绑定81端口报拒绝访问错误的解决
运维·nginx
嵌入式@hxydj1 小时前
WorkBuddy中调用本地ComfyUi工作流免费生图
运维·服务器
杨云龙UP1 小时前
生产实战:Keepalived + Nginx + MySQL 双向复制高可用架构部署与原理详解
运维·数据库·mysql·nginx·架构·keepalived·高可用架构
迪康Defender1 小时前
PHP 高危漏洞应急分析:从风险原理到端点侧纵深防护
运维·开发语言·安全·自动化·php·运维开发·远程工作