运行Triton Inference Server报tritonserver: not found错误如何解决
问题根因
核心原因是镜像选用错误:nvcr.io/nvidia/pytorch:22.06-py3是NVIDIA提供的PyTorch训练/开发容器,默认不内置Triton Inference Server服务端二进制程序,和端口映射、模型仓库挂载配置无关。
排查思路
- 进入容器验证可执行文件是否存在:执行命令启动交互终端
进入容器后依次执行docker run --gpus=1 --rm -it nvcr.io/nvidia/pytorch:22.06-py3 bashwhich tritonserver、which trtserver,如果无返回路径,即可确认镜像未预装对应程序。 - 核对镜像用途:PyTorch类镜像定位是模型训练、导出、Triton客户端开发环境,并非Triton服务端运行环境,因此不存在
tritonserver或旧版别名trtserver可执行文件,替换命令中的程序名无法解决问题。
解决方法
方案1:使用官方Triton服务端镜像(推荐)
直接拉取对应版本的Triton服务端预构建镜像,替换原命令中的镜像地址即可,22.06版本匹配的运行命令如下:
docker run --gpus=1 --rm -p8000:8000 -p8001:8001 -p8002:8002 -v/F/models:/models nvcr.io/nvidia/tritonserver:22.06-py3 tritonserver --model-repository=/models
该镜像默认内置完整的Triton服务端组件,启动后会自动加载挂载路径下的模型仓库,三个端口分别对应:
- 8000:HTTP推理服务端口
- 8001:GRPC推理服务端口
- 8002:Prometheus监控指标端口
方案2:强制复用现有PyTorch镜像
如果因依赖限制必须使用nvcr.io/nvidia/pytorch:22.06-py3镜像,可在容器内手动安装匹配版本的Triton服务端:
- 启动带挂载和端口映射的容器交互终端:
docker run --gpus=1 --rm -it -p8000:8000 -p8001:8001 -p8002:8002 -v/F/models:/models nvcr.io/nvidia/pytorch:22.06-py3 bash - 安装版本匹配的Triton服务端包(22.06版PyTorch镜像对应Triton版本为2.22.0,版本不匹配会出现CUDA、依赖库兼容问题):
pip install tritonserver==2.22.0 - 安装完成后直接在容器内执行启动命令:
tritonserver --model-repository=/models
注意事项
- 区分NGC容器分类:训练类镜像标签为pytorch、tensorflow,用于模型开发训练;推理服务类镜像标签为tritonserver,用于部署推理服务,不同镜像预装组件完全不同。
- 22.01及之后版本的Triton服务端统一使用
tritonserver作为启动命令,旧版trtserver别名已废弃,无需尝试替换。
内容的提问来源于stack exchange,提问作者Antonina
相关产品推荐
相关产品推荐

