docker-compose 不会使用我的命名卷

docker-compose won't use my named volumes

所以我是 docker 的新手。我在将命名卷附加到 swarm 中的服务时遇到问题。

这是我的 docker-compose.yml...

version: '3'
services:
  ned:
    image: keli
    ports:
      - "8080:8080"
    depends_on:
      - craig
      - paul
  craig:
    image: cb
    volumes:
      - cbKeli:/opt/couchbase/var
    ports:
      - "8091:8091"
  paul:
    image: pg
    volumes:
      - pgKeli:/var/lib/postgresql/data
    ports:
      - "5432:5432"
volumes:
  pgKeli:
  cbKeli:

然而,在 docker-compose up 之后,我得到了新的卷。

$ docker volume ls | grep -i keli
DRIVER              VOLUME NAME
local               cbKeli
local               kelidocker_cbKeli
local               kelidocker_pgKeli
local               pgKeli

这是怎么回事?我怎样才能让我的新群使用现有的命名卷?

你需要告诉compose这是一个外部创建的卷。为此,您可以像这样在卷定义上使用外部密钥:

volumes:
  cbKeli:
    external: true
  pgKeli:
    external: true

有关外部卷的更多信息,请参阅以下文档:https://docs.docker.com/compose/compose-file/#external