惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Visual Studio Blog
I
InfoQ
H
Help Net Security
GbyAI
GbyAI
博客园 - 叶小钗
Recent Announcements
Recent Announcements
Engineering at Meta
Engineering at Meta
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
爱范儿
爱范儿
Y
Y Combinator Blog
L
LangChain Blog
腾讯CDC
酷 壳 – CoolShell
酷 壳 – CoolShell
WordPress大学
WordPress大学
Stack Overflow Blog
Stack Overflow Blog
F
Fortinet All Blogs
G
Google Developers Blog
Apple Machine Learning Research
Apple Machine Learning Research
The GitHub Blog
The GitHub Blog
T
The Blog of Author Tim Ferriss
博客园 - Franky
D
Docker
Jina AI
Jina AI
罗磊的独立博客

又见苍岚

COLMAP PatchMatch Stereo 算法详解 事件驱动的状态机框架:从理论到工程实践 Git 在国内网络环境下无法 Push 的排查与修复 —— 配置 Clash 代理 分段五次多项式插值原理详解 路径插值方法深度对比研究 Claude Code 使用指南 OpenClaw 记忆管理与技能创建指南 CBS(Conflict-Based Search)算法详解 A* 算法及其变种详解 OpenClaw 配置多 Agents Windows Powershell 无法加载文件,因为在此系统上禁止运行脚本问题的解决方案 MaxClaw 安装流程 大模型 AI 名词介绍 AList 网盘聚合工具简介 Protobuf 简介与测试 Claude Code 简介以及 GLM 4.7 模型接入 Github 歌词下载工具 163MusicLyrics Python __getattr__ 懒加载 Python TypedDict 机器人仿真平台 Gazebo 安装记录 机器人仿真平台 Gazebo 简介 多机器人路径规划问题(Multi-Agent Path Finding, MAPF)简介 Python exifread 读取修改过的 jpeg 信息错误问题修复 3D 坐标系变换的理解 3D 旋转矩阵基本概念 MongoDB Compass 介绍 Python 环境管理工具 uv Flutter 开发指南 Snipaste 安装下载与黑屏问题解决方案 全局路径规划算法记录
Docker GPU 报错 - Failed to initialize NVML Unknown Error...
Yiwei Zhang · 2025-08-22 · via 又见苍岚

在 Docker 中使用 GPU 时,过一段时间后就会报错 Failed to initialize NVML Unknown Error, 本文记录原因和解决方案。

问题描述

此时容器中运行 nvidia-smi 可以看到显卡信息

过几个小时之后,再次运行 nvidia-smi ,报错:

1
Failed to initialize NVML: Unknown Error

问题原因

The host performs daemon-reload (or a similar activity). If the container uses systemd to manage cgroups, daemon-reload “triggers reloading any Unit files that have references to NVIDIA GPUs.” Then, your container loses access the reloaded GPU references.

主机执行守护进程重新加载(或类似活动)。如果容器使用 systemd 来管理 cgroup,则 daemon-reload 会触发重新加载任何引用 NVIDIA GPU 的 Unit 文件。然后,您的容器将无法访问重新加载的 GPU 引用。

问题复现

使用这一解决方案前需要确认是这个问题,方法很容易。

当您的容器仍然具有 GPU 访问权限时,打开一个“ 主机 ”终端并运行:

1
sudo systemctl daemon-reload

然后,返回到容器。如果容器中的 nvidia-smi 立即出现问题,您可以继续使用解决方法。

解决方案

最简单的方法是通过 docker daemon.json 禁用容器中的 cgroup。如果禁用 cgroups 不会伤害您,请按照以下步骤作。一切都在宿主机系统中完成。

1
sudo vim /etc/docker/daemon.json 

然后,在文件中添加此参数设置。

1
"exec-opts": ["native.cgroupdriver=cgroupfs"] 

不要忘记在此参数设置之前添加逗号。这是一个众所周知的 JSON 语法,但我认为有些人可能不熟悉它。这是我的机器上编辑的示例文件。

1
2
3
4
5
6
7
8
9
{  
"runtimes": {
"nvidia": {
"args": [],
"path": "nvidia-container-runtime"
}
},
"exec-opts": ["native.cgroupdriver=cgroupfs"]
}

最后一步,在主机中重新启动 docker 服务。

1
sudo service docker restart

注意 :如果您的容器运行自己的 NVIDIA 驱动程序,则上述步骤将不起作用.

参考资料

文章链接:
https://www.zywvvd.com/notes/tools/docker/docker-failed-initialize-nvml-known-error/docker-failed-initialize-nvml-known-error/