【问题标题】:How to fix invalid mount config for type "bind": source path must be a directory in Windows docker Container?如何修复类型“bind”的无效挂载配置:源路径必须是 Windows docker Container 中的目录?
【发布时间】:2019-09-26 02:55:00
【问题描述】:

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

我正在使用 docker-for-windows 并运行 Windows Container(因此 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

我在 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'.

我可以知道任何修复方法吗?

【问题讨论】:

  • 正如错误输出中所说,您尝试挂载一个文件,至少从源端显然不可能。
  • 同样适用于 Linux 容器
  • 如果目标是一个空目录,您可以将文件移动到仅包含 model.config 的目录,目标是 /models/ 但如果模型包含一些文件,它们将被覆盖,所以在这种情况下帮不了你。

标签: docker tensorflow tensorflow-serving docker-for-windows


【解决方案1】:

这是众所周知的issue绑定挂载文件是不可能通过windows的。虽然在 linux 上可以,但也有不少陷阱,所以最好挂载一个目录。它还提到它是对 Windows 本身的平台限制。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-17
    • 1970-01-01
    • 2021-12-25
    • 1970-01-01
    • 2021-07-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多