【问题标题】:use a file in docker containers - windows在 docker 容器中使用文件 - windows
【发布时间】: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


【解决方案1】:

那么,是否可以使用 -v 选项挂载两个驱动器?

不,这是不可能的,你需要为不同的目录使用多个 -v 选项。

带有 Windows 卷挂载的 Docker 存在一些问题,它不允许在路径中使用“-”选项。 (例如 C:/camel-project )

并且始终使用 / 不使用斜线。

更多相关的讨论在这里完成。 https://forums.docker.com/t/volume-mounts-in-windows-does-not-work/10693/7

【讨论】:

    猜你喜欢
    • 2020-08-04
    • 2018-06-03
    • 2023-02-15
    • 2018-08-04
    • 2022-09-23
    • 2019-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多