window 下使用docker

基于 osrf/ros:humble-desktop-full-jammy 这个镜像启动一个 Docker 容器,我会给你提供不同场景下的启动命令,涵盖基础启动、端口映射、目录挂载等常用需求,方便你直接使用。

一、基础启动命令(最常用)

这是启动 ROS 2 Humble 容器的基础命令,会进入容器的交互式终端,适合快速验证和调试:

bash

运行

复制代码
# 基础启动:--rm 退出容器后自动删除容器,-it 交互式终端,--name 给容器命名(方便管理)
docker run --rm -it --name ros_humble_container osrf/ros:humble-desktop-full-jammy

执行后会直接进入容器内部的 bash 终端,你可以在里面执行 ROS 2 命令(比如ros2 --version)验证环境。

二、实用增强版启动命令(推荐)

如果需要在容器中运行 GUI 程序(比如 RViz、Gazebo)、挂载本地目录、映射端口,使用以下命令(Windows PowerShell/CMD 通用):

bash

运行

复制代码
# 增强版启动:支持GUI、挂载本地目录、网络主机模式
docker run --rm -it ^
    --name ros_humble_container ^
    --env="DISPLAY" ^
    --env="QT_X11_NO_MITSHM=1" ^
    --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" ^
    --volume="%cd%/ros_ws:/root/ros_ws:rw" ^  # 挂载本地ros_ws目录到容器/root/ros_ws(Windows)
    --net=host ^  # 主机网络模式,方便ROS 2节点通信
    osrf/ros:humble-desktop-full-jammy
关键参数说明:

表格

参数 作用
--env="DISPLAY"/QT_X11_NO_MITSHM=1 支持容器内 GUI 程序(RViz/Gazebo)显示
--volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" 共享 X11 套接字,实现 GUI 窗口映射到主机
--volume="%cd%/ros_ws:/root/ros_ws:rw" 挂载本地ros_ws目录到容器,本地修改的代码会同步到容器(Windows 用 % cd%,Linux/macOS 用 $(pwd))
--net=host 容器使用主机网络,ROS 2 节点可直接和主机通信,无需额外端口映射

三、Windows 下 GUI 显示额外配置(重要)

如果需要在 Windows 上显示容器内的 ROS 2 GUI 程序(如 RViz),还需要:

  1. 安装 X Server 软件(比如 VcXsrv):

    • 下载地址:https://sourceforge.net/projects/vcxsrv/
    • 安装后启动 XLaunch,保持默认配置(Multiple windows → Next → Start no client → Next → 勾选 "Disable access control" → Finish)。
  2. 在启动容器前,在 PowerShell 中执行以下命令(设置 DISPLAY 环境变量): bash

    运行

    复制代码
    # 获取本机IP并设置DISPLAY
    $env:DISPLAY = (Get-NetIPAddress -AddressFamily IPv4 | Where-Object { $_.InterfaceAlias -match 'Ethernet|Wi-Fi' }).IPAddress + ":0.0"
  3. 再执行上面的增强版启动命令,即可正常显示 GUI 窗口。

四、容器常用操作

bash

运行

复制代码
# 查看运行中的容器
docker ps

# 停止容器(如果没加--rm,需要手动停止)
docker stop ros_humble_container

# 重新启动已停止的容器
docker start ros_humble_container

# 进入已运行的容器(新开终端)
docker exec -it ros_humble_container /bin/bash

总结

  1. 基础启动docker run --rm -it --name ros_humble_container osrf/ros:humble-desktop-full-jammy,适合快速验证环境。
  2. 增强启动:添加 GUI 支持、目录挂载、主机网络,适合实际开发和运行 ROS 2 程序。
  3. Windows GUI:需安装 VcXsrv 并设置 DISPLAY 环境变量,才能显示 RViz/Gazebo 等窗口。
相关推荐
2301_7681034916 小时前
AI视频创作Agent实战03:DeepSeek文案裂变与草稿版本控制
人工智能
火山引擎开发者社区16 小时前
Anker 首届黑客松挑战赛|9 月 7 日报名启动
人工智能
Dawson Zhu17 小时前
工作流与 Agent 的工程选型:从“控制权归属“看 LLM 应用架构
人工智能·语言模型·架构·aigc·agi
广州山泉婚姻17 小时前
Python序列号源码分析
python
计算机源码社18 小时前
【大数据项目实战】基于大数据的影视内容生态综合质量分析与可视化-基于数据挖掘的影视内容类型共现与口碑聚类分析系统
大数据·人工智能·python·数据挖掘·数据分析·毕业设计·课程设计
C^h18 小时前
pytorch 适合初学者 0基础学习
人工智能·pytorch·python
Rocky Ding*18 小时前
【三年面试五年模拟】2026-09-06 拼多多 AI Agent研发岗秋招笔试4道算法题完整题解
论文阅读·人工智能·深度学习·机器学习·aigc·ai-native·拼多多
小柯南敲键盘18 小时前
跨马翻译:AI批量图片翻译工具,跨境电商视频字幕翻译与智能抠图一体搞定
人工智能·python·音视频
2601_9622972519 小时前
Python里behave和pytest-bdd哪个更适合中大型项目?为什么?
python·bdd·行为驱动开发·behave·pytest-bdd
2601_9677607819 小时前
2026年PDF压缩与页码添加工具技术实测:性能、算法与本地化适配深度对比
算法·pdf