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

如何在docker compose文件中为mongodb附加持久卷?,mongodb,docker,docker-compose,docker-volume,mongo-express,Mongodb,Docker,Docker Compose,Docker Volume,Mongo Express,我有一个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文件,它将在同一网络“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

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

volumes:
  demo-vol:
    driver: local
并尝试删除斜杠

volumes:
  - demo-vol:/data/db