【问题标题】:How to mount existing directory on Windows Host in Docker Portainer?如何在 Docker Portainer 的 Windows 主机上挂载现有目录?
【发布时间】:2022-05-08 20:25:56
【问题描述】:

我有docker-compose.yml

volumes:
      - D:/Docker/config:/config
      - D:/Downloads:/downloads  

我可以用docker-compose up 做到这一点,没有任何问题

但是在搬运工堆栈中,我得到了一个错误

Deployment error
failed to deploy a stack: Named volume "D:/Docker/config:/config" is used in service "test" but no declaration was found in the volumes section. : exit status 1  

基本上我想映射我的主机文件夹D:/Docker/config。我如何在搬运工中做到这一点?

【问题讨论】:

  • 尝试'D:/Downloads:/downloads'(单引号双引号),我猜(重复的):是一个问题/混乱..甚至更好,也许:@ 987654329@ ... see here
  • @xerx593:谢谢伙计,单引号不是有效的语法,但/d/Downloads 为我修复了它。

标签: docker docker-compose portainer


【解决方案1】:

使用/d/Downloads 使其工作,感谢@xerx593

【讨论】:

    【解决方案2】:

    我花了很长时间才弄清楚这一点

    因此,在 Docker-Compose 中,在以 WSL2 模式运行 Docker Desktop 的 Windows 上,当输入绑定挂载的挂载点时,您必须对其进行格式化

    - /mnt/DRIVE-LETTER/directory/to/location:/container/path
    

    一个例子是

    - /mnt/k/docker/tv/xteve/config:/home/xteve/config
    

    您还可以选择使用 Compose 文件所在位置的相对路径,但不能使用 Portainer。我知道,我尝试了我能想到的一切。然后我在看教程,我看到了同样的东西 @warheat1990 贴在这里并进行了实验。

    Portainer 告诉您粘贴 Docker-Compose,但路径不同。 Portainer 中的路径将不起作用并被忽略或放置在您无法从 Windows 访问它们的地方,除非您删除“/mnt”并以驱动器号开头

    - /DRIVE-LETTER/directory/to/location:/container/path
    

    一个例子是

    - /k/docker/tv/xteve/config:/home/xteve/config
    

    我在没有“/mnt”的情况下在 Portainer 之外对其进行了测试,它失败了,但在 Portainer 中它不能在那里。到目前为止,我相当有信心没有办法做到对两者都适用。这非常烦人,因为 Portainer 可以轻松粘贴您的 Compose 或实际导入文件,但是您必须对其进行编辑,只是没有人告诉您...

    希望有帮助

    【讨论】:

      猜你喜欢
      • 2022-11-03
      • 2014-06-19
      • 2019-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-10
      • 1970-01-01
      • 2021-07-04
      相关资源
      最近更新 更多