Docker 错误 - 未知或无效的运行时名称:Nvidia

问题描述 投票:0回答:1

https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_visual_slam 我们来看看上面Isaac Sim环境下的Visual SLAM包。该软件包适用于 ROS2 环境。

  1. 编辑

    /etc/docker/daemon.json
    : 我编辑
    /etc/docker/daemon.json
    如下:

    "runtimes": {
        "nvidia": {
            "path": "nvidia-container-runtime",
            "runtimeArgs": []
        }
    },
    "default-runtime": "nvidia"
    

    我添加了第 7 行(以及第 6 行末尾的逗号),因为它未包含在原始配置中。

  2. 应用更改: 我使用以下命令应用了上述更改:

    $ sudo systemctl daemon-reload
    $ sudo systemctl restart docker
    
  3. 从 Git 获取 Docker 脚本: 我执行了以下步骤来获取 Docker 脚本。在这里,我在主目录中创建了一个名为

    docker
    的目录:

    $ cd ~
    $ mkdir docker
    $ cd docker
    $ git clone https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_common
    
  4. 为 Docker 容器准备一个目录: 我为 Docker 容器创建了以下目录(这不是强制性的):

    $ mkdir -p ~/workspaces/isaac_ros-dev
    
  5. 启动 Docker 容器: 为了启动 Docker 容器,我移至

    ~/docker/isaac_ros_common/
    并输入以下命令:

    $ scripts/run_dev.sh ~/workspaces/isaac_ros-dev/
    

我在尝试使用 Nvidia 运行时时遇到 Docker 运行时错误。尽管使用初始 Docker 命令成功输出并对 Docker 配置进行后续编辑,但仍会出现此问题。

重现步骤

  1. 运行以下Docker命令,执行成功:

    sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi
    
  2. 编辑

    /etc/docker/daemon.json
    如下:

    {
        "runtimes": {
            "nvidia": {
                "path": "nvidia-container-runtime",
                "runtimeArgs": []
            }
        },
        "default-runtime": "nvidia"
    }
    
  3. 进行这些更改后,尝试使用以下命令执行脚本:

    scripts/run_dev.sh ~/workspaces/isaac_ros-dev/
    

    这会导致以下错误:

    docker: Error response from daemon: unknown or invalid runtime name: nvidia.
    

预期行为

Docker 容器应该能够正确识别 Nvidia 运行时,特别是因为初始命令运行没有问题。

实际行为

尝试运行使用 Docker 和 Nvidia 运行时的脚本时,系统会抛出错误,指出“未知或无效的运行时名称:nvidia”。

环境

  • Docker 版本:Docker 版本 24.0.7,构建 afdd53b
  • 操作系统:ubuntu22.04
  • 任何其他相关环境细节

尝试解决

  • 验证初始 Docker 命令是否成功运行。
  • 检查了
    daemon.json
    文件中的语法和路径。
  • 在论坛和 GitHub Issues 中搜索类似问题。

请求帮助

任何人都可以提供见解或建议潜在的解决方案来解决此运行时错误吗?任何建议或指导将不胜感激。

附加信息

sudo docker info | grep -i runtime

结果 运行时:runc io.containerd.runc.v2 nvidia 默认运行时:nvidia

我已成功安装 NVIDIA Container Toolkit。

但是,我有同样的错误。

I edite the /etc/docker/daemon.json and use the absolute path

docker nvidia ros2
1个回答
0
投票

https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_common/issues/101

  • 编辑scripts/run_dev.sh文件

  • 将 --runtime nvidia 替换为 --gpus all。

© www.soinside.com 2019 - 2024. All rights reserved.