我正在尝试在Windows Server 2019上运行的Docker EE中运行多个 Linux 容器。一切正常,直到我将单个文件装入到容器中为止,例如:
VOLUME:
- c:\xxx\yyy.xml:/app/yyy.xml
启动实例时收到错误消息:
错误:对于xxx无法为服务s1创建容器:无效的卷规范:'C:\ Users \ xxx \ yyy.xml:/app/yyy.xml'类型“绑定”的无效安装配置:源路径必须为目录
在运行Docker CE(在Windows上)中可以装载单个文件。
是否有一种无需太多自定义变通办法就能使它正常工作的方法?
答案 0 :(得分:0)
难过-这是github上相关问题的链接。
https://github.com/moby/moby/issues/30555
要点...
thaJeztah写道
在Windows上无法正确地进行绑定安装文件。在Linux上, 但是也有很多陷阱,因此挂载目录是 在许多情况下都是首选。
但是,Drewster727指出了以下内容
对于我的情况,
我们正在旧版.NET Framework世界(/ sad-face)中运行应用程序- 我们的应用程序二进制文件中混有.config文件。我们不 想要构建特定于环境的容器,因此,我们当然尝试 共享直接根据环境转换的配置文件 在容器中找到应用程序期望的位置。
万一它对任何人都有帮助,我有一个简单的entrypoint.ps1脚本黑客 暂时解决此问题。与共享目录到c:\ conf 配置文件,脚本会将其复制到应用程序上下文中 开始文件夹:
if(测试路径c:\ conf){ 复制项-path c:\ conf *。*-递归-目的地。 -Force}
答案 1 :(得分:0)
对于Windows绑定的卷,您必须像这样格式化路径:
VOLUME:
- /c/xxx/yyy.xml:/app/yyy.xml
我创建了一个方便的AutoHotkey脚本,以使在Windows中创建Docker格式的Windows路径更加容易: