如何在 docker-compose 文件中为 mongodb 附加持久卷?

How to attach persistent volume in docker-compose file for mongodb?

我有一个 docker-compose 文件,它将在同一网络“mynet”中调出 mongo 和 mongo-express 容器。 我通过以下方式创建了一个网络:

docker network create mynet

我已经通过 docker 命令在外部创建了一个名为“demo-vol”的卷。

docker volume create demo-vol

在容器内,我创建了一个示例 mongo 集合。 当我执行 docker-compose up 时,我能够看到容器 运行 但我无法在其中找到 mongo 数据指定的音量。

下面是我的docker-compose.yaml文件

version: '3'
services:
  mongo:
    image: mongo
    container_name: mymongo
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: example
    volumes:
      - "/demo-vol:/data/db"
    networks:
      - mynet
    ports:
      - 27017:27017
  mongoexpress:
    image: mongo-express
    container_name: mymongoexpress
    ports:
      - 8081:8081
    volumes:
      - "/demo-vol:/data/db"
    environment:
      ME_CONFIG_MONGODB_ADMINUSERNAME: root
      ME_CONFIG_MONGODB_ADMINPASSWORD: example
    depends_on:
      - mongo
    networks:
      - mynet
volumes:
  demo-vol:
    external: true
networks:
  mynet:
    external: true

我需要的是: 即使在删除容器后,我也希望我的数据能够持久化。

怎么做,请解释。我哪里错了?

注意:我是 Docker 概念的初学者。

提前致谢。

您可以使用本地驱动程序进行卷

volumes:
  demo-vol:
    driver: local

并尝试删除斜杠

volumes:
  - demo-vol:/data/db