0

我有一个 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 概念的初学者。

提前致谢。

4

1 回答 1

2

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

volumes:
  demo-vol:
    driver: local

并尝试删除斜线

volumes:
  - demo-vol:/data/db
于 2020-08-27T14:44:01.467 回答