我正在努力了解 docker-compose.yaml 的工作原理。我试图在 Compose 文件中定义一个卷并将其挂载到本地的挂载点。我尝试运行一个基本的 .yaml 来挂载我的卷:
version: '3.2'
services:
mydb:
image: postgres
volumes:
- db-data:var/lib/postgres/data
ports:
- "5432:5432"
volumes:
- db-data:
- driver: local
但是当我运行时docker-compose down
,出现错误:
$ docker-compose down
The Compose file '.\docker-compose.yml' is invalid because:
services.mydb.volumes 'type' is a required property
services.mydb.volumes 'type' is a required property
我是新手,仍在理解使用 Docker 的所有细微差别。我认为我的问题在于缩进错误,或者我如何使用扩展名调用版本号,但我似乎无法理解错误。
答案1
复合文件对空格敏感(这是 yaml 格式)。复合文件中有两个不同的卷部分,一个卷在缩进的顶层定义,另一个卷在服务中使用。您尝试在服务中定义这两个卷,但第二组卷在定义如何使用卷时定义不正确(它需要目标目录)。以下是您要尝试的操作:
version: '3.2'
services:
mydb:
image: postgres
volumes:
- db-data:var/lib/postgres/data
ports:
- "5432:5432"
volumes:
db-data: