【发布时间】:2021-08-04 07:39:55
【问题描述】:
我正在为我的项目编写一个docker-compose.yaml 文件。我已经检查了卷文档here。
我也理解 docker 中 volume 的概念,我可以挂载一个卷,例如-v my-data/:/var/lib/db 其中my-data/ 是我主机上的目录,而/var/lib/db 是数据库容器内的路径。
我对上面的链接感到困惑。它有以下示例:
version: "3.9"
services:
db:
image: db
volumes:
- data-volume:/var/lib/db
backup:
image: backup-service
volumes:
- data-volume:/var/lib/backup/data
volumes:
data-volume:
我想知道这是否意味着我必须在我的主机上创建一个名为 data-volume 的目录?如果我的机器上有一个路径为 temp/my-data/ 的目录,我想将该路径挂载到数据库容器 /var/lib/db 怎么办?我应该执行以下操作吗?
version: "3.9"
services:
db:
image: db
volumes:
- temp/my-data/:/var/lib/db
volumes:
temp/my-data/:
我的主要困惑是底部的volumes: 部分,我不确定卷名应该是我的目录的路径还是应该只是我给出的名字&如果是后一种情况,那么怎么可能给定名称在我的机器上映射为temp/my-data/?该示例并未表明 & 是模棱两可的。
有人可以帮我澄清一下吗?
P.S.我猜想上面的 docker-compose 试过了,结果报错:
ERROR: The Compose file './docker-compose.yaml' is invalid because:
volumes value 'temp/my-data/' does not match any of the regexes: '^[a-zA-Z0-9._-]+$'
【问题讨论】:
标签: docker docker-compose docker-volume