Docker Compose - 绑定源路径不存在

问题描述 投票:0回答:3

在我的 docker compose 服务中,我有以下内容:

volumes:
      - ~/DockerStuff/Projects:/root/Documents/Projects
      - ~/DockerStuff/Downloads:/root/Downloads

但是当我跑

docker compose
时,我被告知:
Error response from daemon: invalid mount config for type "bind": bind source path does not exist

我不断看到有人说你可以创建绑定卷,如果主机目录不存在,Docker 将动态创建它。 但这些似乎特定于 DockerFile 设置而不是撰写文件。

docker compose 中也可以实现这样的功能吗? :)

docker docker-compose
3个回答
8
投票

要为 docker-compose 卷绑定创建主机文件夹(如果不存在),只需将

bind.create_host_path
添加到卷部分 -

volumes:
      - type: bind
        source: localFolder/subFolderIfNeeded
        target: /data
        bind:
          create_host_path: true

注意:在 Docker compose 2.15.1 上测试


2
投票

~
符号不会被 docker compose 扩展。

你必须依赖这种方法:

构建脚本

HOME=${HOME} docker-compose ... command options ...

docker 撰写 yaml

volumes:
      - ${HOME}/DockerStuff/Projects:/root/Documents/Projects
      - ${HOME}/DockerStuff/Downloads:/root/Downloads

0
投票

我不确定这是否在 2021 年实现,但目前在 Docker Desktop 4.34.2 中仅共享某些目录。这些可以在“首选项”>“资源”>“虚拟文件共享”下的文件共享中进行设置。存在一些默认的,但源需要在其中之一下可用或需要添加。请参阅有关设置的文档

© www.soinside.com 2019 - 2024. All rights reserved.