星屿浅奈 ✧ Saneko

Back

Ollama突然无法识别GPU问题Blur image

问题描述#

在 Docker 容器中运行 Ollama 时, GPU 最初可用,但运行一段时间后会突然失效,无法被 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"]
}
json

重启 Docker 生效

sudo systemctl restart docker
bash

验证是否生效

docker info | grep "Cgroup Driver"
bash

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

为什么这样修改有效#

systemd(默认)cgroupfs(推荐)
动态调整 cgroup,可能导致 GPU 设备丢失直接管理 cgroup,GPU 访问更稳定
某些 NVIDIA 容器运行时兼容性较差兼容性更好,适合 GPU 容器化
在长期运行的容器中可能出现问题减少 GPU 失效的概率
Ollama突然无法识别GPU问题
https://saneko.me/blog/453fb592d1ea
Author Saneko
Published at August 5, 2025
Buy me a cup of coffee ☕.
Comment seems to stuck. Try to refresh?✨