【模型推理】Triton server GPU inference nvidia-container-runtime 无法定位软件包安装问题解决
·
1.nvidia-container-runtime 和 nvidia-container-toolkit
两者具体关系:
1.1 nvidia-container-toolkit - 是整个工具包的集合
- 包含所有必要的工具和库
- 现代化的统一包管理方式
- 替代了旧的 nvidia-docker2 方案
1.2 nvidia-container-runtime - 是工具包中的一个组件
- 实际的容器运行时可执行文件
- 被 Docker 调用来处理 GPU 相关的容器启动
nvidia-container-toolkit (工具包)
├── nvidia-container-runtime (运行时)
├── nvidia-container-runtime-hook (钩子)
├── nvidia-ctk (配置工具)
└── libnvidia-container (底层库)
2.常见问题
2.1 unable to locate package nvidia-container-toolkit
- 执行 nvidia-smi 确定 cuda 正确安装:

- 添加官方仓库:
# 安装依赖
sudo apt-get update
sudo apt-get install -y curl
# 添加密钥和仓库
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
- 安装:
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
- 指令验证:
apt list --installed

- 测试 Triton Server GPU 支持:
docker run --gpus all --rm nvcr.io/nvidia/tritonserver:24.01-py3 nvidia-smi

- 检查 Docker 的 GPU 支持配置:
# 检查 Docker 是否正确配置了 GPU 运行时
docker info | grep -i nvidia
如果有下面的输出说明正确配置了 GPU 运行时:
Runtimes: io.containerd.runc.v2 nvidia runc
Default Runtime: nvidia
如果没有上述输出,则执行下面的命令继续检查:
# 检查 nvidia-container-toolkit 是否安装
which nvidia-container-runtime
# 输出内容:/usr/bin/nvidia-container-runtime
检查 Docker daemon 配置:
cat /etc/docker/daemon.json
{
"registry-mirrors": [
"https://registry.docker-cn.com",
"https://s4uv0fem.mirror.aliyuncs.com",
"https://docker.1ms.run",
"https://registry.dockermirror.com",
"https://docker.m.daocloud.io",
"https://docker.kubesre.xyz",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.1panel.live",
"https://docker.kejilion.pro",
"https://dockercf.jsdelivr.fyi",
"https://docker.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://hub.littlediary.cn",
"https://proxy.1panel.live",
"https://docker.1panelproxy.com",
"https://image.cloudlayer.icu",
"https://docker.1panel.top",
"https://docker.anye.in",
"https://docker-0.unsee.tech",
"https://hub.rat.dev",
"https://hub3.nat.tf",
"https://docker.1ms.run",
"https://func.ink",
"https://a.ussh.net",
"https://docker.hlmirror.com",
"https://lispy.org",
"https://docker.yomansunter.com",
"https://docker.xuanyuan.me",
"https://docker.mybacc.com",
"https://dytt.online",
"https://docker.xiaogenban1993.com",
"https://dockerpull.cn",
"https://docker.zhai.cm",
"https://dockerhub.websoft9.com",
"https://dockerpull.pw",
"https://docker-mirror.aigc2d.com",
"https://docker.sunzishaokao.com",
"https://docker.melikeme.cn"
]
}
可以明显的看到,Docker daemon 配置文件缺少 NVIDIA runtime 配置,更新配置文件即可:
(1).备份当前配置:
sudo cp /etc/docker/daemon.json /etc/docker/daemon.json.backup
(2).更新配置文件以包含 NVIDIA runtime:
sudo tee /etc/docker/daemon.json <<EOF
{
"registry-mirrors": [
"https://registry.docker-cn.com",
"https://s4uv0fem.mirror.aliyuncs.com",
"https://docker.1ms.run",
"https://registry.dockermirror.com",
"https://docker.m.daocloud.io",
"https://docker.kubesre.xyz",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.1panel.live",
"https://docker.kejilion.pro",
"https://dockercf.jsdelivr.fyi",
"https://docker.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://hub.littlediary.cn",
"https://proxy.1panel.live",
"https://docker.1panelproxy.com",
"https://image.cloudlayer.icu",
"https://docker.1panel.top",
"https://docker.anye.in",
"https://docker-0.unsee.tech",
"https://hub.rat.dev",
"https://hub3.nat.tf",
"https://docker.1ms.run",
"https://func.ink",
"https://a.ussh.net",
"https://docker.hlmirror.com",
"https://lispy.org",
"https://docker.yomansunter.com",
"https://docker.xuanyuan.me",
"https://docker.mybacc.com",
"https://dytt.online",
"https://docker.xiaogenban1993.com",
"https://dockerpull.cn",
"https://docker.zhai.cm",
"https://dockerhub.websoft9.com",
"https://dockerpull.pw",
"https://docker-mirror.aigc2d.com",
"https://docker.sunzishaokao.com",
"https://docker.melikeme.cn"
],
"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}
},
"default-runtime": "nvidia"
}
EOF
- 重启 docker 服务:
sudo systemctl restart docker
3.启动
- 配置更新后,可以直接启动 Triton Server:
docker run --gpus all --rm -p8000:8000 -p8001:8001 -p8002:8002 \
-v $(pwd)/resnet50:/models \
nvcr.io/nvidia/tritonserver:24.01-py3 \
tritonserver --model-repository=/models --log-verbose=1

Tips:科学上网!
公众号:TensorLink
更多推荐
所有评论(0)