【问题标题】:How can Docker on Windows 10 access Network Drives?Windows 10 上的 Docker 如何访问网络驱动器?
【发布时间】:2020-05-06 13:55:21
【问题描述】:

我写了一些我在 docker 容器中使用的脚本。为了使脚本有用,我需要访问一些网络挂载。

在我的 Mac 上,这很容易。在我的 docker-compose.yml 我有:

volumes:
- type: bind
  source: /Volumes/Teams/myteam/folder/subfolder
  target: /subfolder

在我的同事 Windows 笔记本电脑上 /Volumes/Teams 安装为 T: 所以我天真的方法是使用

volumes:
- type: bind
  source: /t/myteam/folder/subfolder
  target: /subfolder

从 git shell 可以使用此路径。但是当从那个 shell 启动 docker-compose up 时,他会收到错误消息

ERROR: for 255d3d7d2944_my-tools_helpscripts_1  Cannot create container for service helpscripts: b'Mount denied:\nThe source path "T:/myteam/folder/subfolder"\ndoesn\'t exist and is not known to Docker'

Encountered errors while bringing up the project.

在 docker 的共享驱动器设置中,T: 驱动器未列出。

我们如何解决这个问题?

【问题讨论】:

  • 将它们添加到源代码管理并COPY 将它们添加到您的图像中。这将使图像自包含,您不必担心安装额外的内容以使容器有用。如果您迁移到 Kubernetes 之类的集群环境,这一点就倍加重要,您还必须确保每个节点都具有相同的挂载配置;最好将所需的一切都保留在图像本身中。
  • 好主意,@DavidMaze,但这不可行,因为(当前)629MB 的共享数据发生了变化。当然,我的同事每次需要脚本时都可以构建一个新映像,但是脚本在共享中更改的数据呢?

标签: docker windows-10


【解决方案1】:

我想我找到了适合我的解决方案:

  1. 使用功能SYS_ADMINDAC_READ_SEARCH 启动我的容器
  2. 安装在容器内
    mount -t cifs -o user=USER,domain=DOMAIN //SERVER/Teams /mnt/T

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-31
    • 1970-01-01
    • 2018-10-18
    • 2020-10-28
    • 1970-01-01
    • 2020-06-21
    相关资源
    最近更新 更多