【发布时间】:2018-06-01 12:55:12
【问题描述】:
这是一个两部分的问题。
1) 在windows中,除了C盘以外的任何盘的文件夹可以共享吗?在网上冲浪时,我发现默认情况下只有 C 盘可以挂载到 docker 容器中。 (C盘用户文件夹)
2) 现在进入主要部分 - 我正在开发一个使用配置文件的骆驼项目。在这个配置文件中,我为 Servicemix 密钥库文件使用了两个参数。现在以前的密钥库位于路径 - D:\sandboxes\apache-servicemix-7.0.0.M3\apache-servicemix-7.0.0.M3\etc\keystores。
我尝试给出这条路径,结果出错 -
找不到文件
我将密钥库文件夹复制到C:\Users,然后给出了路径C:\Users\keystores,但错误仍然存在。
现在在运行docker run 命令时,我已经在映射我的骆驼项目所在的卷 - docker run -v //C/Users/camelproject:/app ...
那么,是否可以使用-v 选项从两个驱动器挂载不同的文件夹?另外我应该怎么做才能在我的项目中使用这些密钥库文件?
编辑 1 -
好的,所以我做了以下事情-
- 将keystores 文件夹复制到我C 盘的camel 项目中。现在的路径是 -
C:/Users/camelproject/src/main/resources/keystores - 在配置文件中将此路径用作
keyStore=C:/Users/camelproject/src/main/resources/keystores/client.ks - 我在我的
camelcontext.xml中使用这个文件 -<property name="keystore" value="${keyStore}" /> - 我将文件夹挂载为
docker run -v //C/Users/camelproject:/app -v //C/Users/camelproject/src/main/resources:/app/config ...,然后在配置文件中交替提供 Windows 和容器路径作为值,但两者都给出了相同的错误。
所以基本上应该找到文件但错误来了。
【问题讨论】:
-
-v挂载文件夹,而不是驱动器。出于明显的安全和隔离原因,您不希望您的容器访问驱动器。默认情况下,任何文件夹都可以挂载,它显示在容器内的 C: 下。毕竟,如果你想使用它们,你必须定义额外的驱动器。没有什么可以阻止您编写-v k:/data/:c:/data/将 K: 驱动器中的文件夹映射到容器 C: 驱动器中的文件夹 -
是的,我的意思是 D 盘中的文件夹,我已经适当地编辑了问题。
-
那么您主机上的文件夹在哪里?为什么不在内部将其映射到
C:\keystores并使用C:\keystores而不是D:\sandboxes\...?或者为您的容器创建一个单独的文件夹并将其映射到C:\keystores? -
@PanagiotisKanavos 听起来不错,让我试试
-
嘿@PanagiotisKanavos。所以我这样做了-将
keystores文件夹复制到src > main > resources下的我的项目中,然后在config文件中将密钥库的路径指定为-keyStore=C:/Users/camelproject/src/main/resources/keystores/client.ks,然后在camelcontext.xml中使用t作为<property name="keystore" value="file:${keyStore}" />。但是错误仍然是一样的
标签: docker keystore apache-servicemix