如何修复“bind”类型的无效挂载配置:源路径必须是 Windows docker 容器中的目录?

han*_*zgs 5 docker tensorflow tensorflow-serving docker-for-windows

我有一个 keras 模型(Windows Spyder IDE)并保存用于张量流服务,并按照https://www.youtube.com/watch?v=CUpUPY5g8NE中的步骤进行部署。

我正在使用 docker-for-windows 并运行 Windows 容器(因此 docker 中没有共享驱动器设置)

我拉了 TF 服务并使用参数运行 docker

> docker pull tensorflow/serving

> docker run -t --rm -d -p 8500:8500 -p 8501:8501 --name tf_model --mount type=bind,source=$LOCALMODELDIR/tf_model,target=/models/mymodel --mount type=bind,source=$LOCALMODELDIR/models.config,target=/models/models.config -e MODEL_NAME=mymodel tensorflow/serving --model_config_file=/models/models.config
Run Code Online (Sandbox Code Playgroud)

我跑到 docker 中的错误为

C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response from daemon: invalid mount config for type "bind": source path must be a directory.
See 'C:\Program Files\Docker\Docker\Resources\bin\docker.exe run --help'.
Run Code Online (Sandbox Code Playgroud)

我可以知道任何修复吗?

小智 6

这是一个众所周知的问题,无法通过 Windows 绑定安装文件。虽然在linux上可以,但是有很多陷阱,所以最好挂载目录。它还提到这是 Windows 本身的平台限制。