# WSL2 Docker 中 Gazebo 不使用 NVIDIA GPU

> 原文链接：https://robotics.hellobike.com/pitfalls/2025-08-25-robotics-se-111677
> 频道：pitfalls | 更新日期：2025-08-25 | 标签：auto, stackexchange, gazebo, docker, windows10, nvidia
> 核心摘要：在 WSL2 Docker 运行 ROS2 Jazzy/Gazebo 很慢，通过挂载 WSLg 与 WSL GPU 相关设备和库解决。

# WSL2 Docker 中 Gazebo 不使用 NVIDIA GPU

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[Gazebo not use nvidia gpu when I installed ros2 jazzy by using docker desktop on Windows wsl2](https://robotics.stackexchange.com/questions/111677/gazebo-not-use-nvidia-gpu-when-i-installed-ros2-jazzy-by-using-docker-desktop-on)（Robotics Stack Exchange #111677）

**状态**：已解决

## 问题

Windows WSL2 Ubuntu 中用 Docker Desktop 运行 `osrf/ros:jazzy-desktop-full`，Gazebo 能启动但很慢，`nvidia-smi` 显示 Gazebo 未用 GPU；使用 `--runtime=nvidia` 报 `unknown or invalid runtime name: nvidia`。

## 环境

Windows WSL2 Ubuntu、Docker Desktop、`osrf/ros:jazzy-desktop-full`、ROS2 Jazzy、Gazebo/Gz sim、NVIDIA GPU，提到 RTX 2060。

## 解决办法

1. 运行容器时增加 WSLg/GPU 相关参数：`-v /mnt/wslg:/mnt/wslg`、`-e WAYLAND_DISPLAY=$WAYLAND_DISPLAY`、`--device=/dev/dxg`、`-v /usr/lib/wsl:/usr/lib/wsl`、`-e LD_LIBRARY_PATH=/usr/lib/wsl/lib`。
2. 继续保留原有 `--gpus all`、`--device /dev/dri:/dev/dri`、`--privileged`、`-v /dev:/dev`、`-e NVIDIA_DRIVER_CAPABILITIES=all` 等参数。
3. 验证结果：`gz sim` Prius 示例相机约 62 FPS，`nvidia-smi` 中出现与模拟器相关的 `ruby` 进程。

原问题作者：AngryTurtle；采纳答案作者：AngryTurtle。原内容依 CC BY-SA 4.0 授权，本页摘要同样依 CC BY-SA 4.0 授权。
:::

## 原始参考来源 (Sources)

- [Robotics Stack Exchange #111677：Gazebo not use nvidia gpu when I installed ros2 jazzy by using docker desktop on Windows wsl2](https://robotics.stackexchange.com/questions/111677/gazebo-not-use-nvidia-gpu-when-i-installed-ros2-jazzy-by-using-docker-desktop-on)