T
Loading T-Blog
返回列表
#经验分享

Ollama突然无法识别GPU问题

本文介绍Ollama在Docker中无法识别GPU的原因及解决方法。

2025年08月05日
1 分钟阅读

问题描述#

在 Docker 容器中运行 Ollama 时, GPU 最初可用,但运行一段时间后会突然失效,无法被 Ollama 识别到。

Ollama日志
Ollama日志

原因分析#

Docker 默认使用 systemd 作为 cgroup 驱动(native.cgroupdriver=systemd),而 NVIDIA 容器运行时(nvidia-container-runtime)在某些情况下与 systemd 不兼容,导致:

GPU 设备权限丢失:/dev/nvidia* 设备节点在运行过程中被 systemd 动态调整,导致容器无法访问

GPU 无法识别:nvidia-container-runtime 无法正确挂载 GPU 设备

解决方案#

修改 Docker 配置,使用 cgroupfs 编辑 /etc/docker/daemon.json(如果不存在则新建):

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

重启 Docker 生效

sudo systemctl restart docker

验证是否生效

docker info | grep "Cgroup Driver"

如果输出是 Cgroup Driver: cgroupfs,说明修改成功。

为什么这样修改有效#

systemd(默认)cgroupfs(推荐)
动态调整 cgroup,可能导致 GPU 设备丢失直接管理 cgroup,GPU 访问更稳定
某些 NVIDIA 容器运行时兼容性较差兼容性更好,适合 GPU 容器化
在长期运行的容器中可能出现问题减少 GPU 失效的概率
C
ATao

ATao

原创

Ollama突然无法识别GPU问题

分享

本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议, 转载请注明出处。

评论