You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Windows Powershell中使用Docker运行TensorFlow Serving时遭遇文件找不到错误

在Windows Powershell中使用Docker运行TensorFlow Serving时遭遇文件找不到错误

看起来你在Windows PowerShell下用Docker部署TensorFlow Serving时,遇到了配置文件挂载失败的问题,我来帮你拆解原因并给出解决方案。

你遇到的NOT_FOUND: /api/models.config/; No such file or directory错误,本质是Docker没有正确把本地的models.config文件挂载到容器内指定的路径,再加上Windows下路径格式和Docker参数的一些细节没注意到,才导致了这个问题。


一、先修正Docker运行命令的关键问题

你的两个命令都存在几个典型的Windows Docker挂载误区,我来逐一修正:

错误点1:路径格式混淆(Windows vs 容器内路径)

Windows下Docker挂载本地文件/目录时,必须用Windows绝对路径(比如D:\Projects\Potato_disease\api\models.config),不能用Linux风格的根路径(比如你第一个命令里的/Potato_disease/);同时容器内的路径要用正斜杠/,不能用反斜杠。

错误点2:挂载文件时末尾多了斜杠

你第一个命令里的target=/api/models.config/加了末尾斜杠,Docker会把它当成目录来处理,但你实际要挂载的是文件,所以要去掉末尾斜杠,改成target=/api/models.config。

错误点3:参数和值之间有空格

第二个命令里的--rest_api_port = 3501有空格,这会被Docker当成两个独立参数,必须去掉空格改成--rest_api_port=3501。

错误点4:容器内不能直接访问Windows本地路径

第二个命令里的--model_config_file=D:\Projects\Potato_disease\api\models.config是Windows本地路径,但容器里根本没有这个路径,必须用容器内挂载后的路径,比如/potato_disease/api/models.config。


二、正确的Docker运行命令示例

假设你的本地项目结构是这样的:

D:\Projects\Potato_disease\
├── saved_models\
│   └── potatoes_model\
│       ├── 1\  # 这里是你的模型版本目录
│       │   ├── saved_model.pb
│       │   └── variables\
└── api\
    └── models.config

那么正确的Docker命令应该是:

docker run -p 3501:3501 `
  -v "D:\Projects\Potato_disease\saved_models:/models" `
  -v "D:\Projects\Potato_disease\api\models.config:/api/models.config" `
  tensorflow/serving `
  --rest_api_port=3501 `
  --model_config_file=/api/models.config

(PowerShell里用反引号`换行,方便阅读)


三、检查models.config的内容是否匹配

确保你的models.config里的模型路径是容器内的挂载路径,而不是本地路径,比如:

model_config_list: {
  config: {
    name: "potatoes_model",
    base_path: "/models/potatoes_model",  # 对应容器内的/models目录
    model_platform: "tensorflow"
  }
}

四、验证挂载是否成功

如果还是有问题,可以进入容器检查文件是否存在:

  1. 先查看运行中的容器ID:docker ps
  2. 进入容器:docker exec -it <你的容器ID> bash
  3. 检查配置文件:ls /api/,如果能看到models.config说明挂载成功;如果看不到,再检查本地路径和挂载命令的拼写。

最后,你的FastAPI代码看起来是没问题的,只要TensorFlow Serving服务正常启动,http://localhost:3501/v1/models/potatoes_model:predict这个端点就能正常接收请求了。

备注:内容来源于stack exchange,提问作者Ibrat Usmonov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 11:57:58