【问题标题】:How to attach persistent volume in docker-compose file for mongodb?如何在 docker-compose 文件中为 mongodb 附加持久卷?
【发布时间】:2020-12-16 11:04:22
【问题描述】:

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

提前致谢。

【问题讨论】:

    标签: mongodb docker docker-compose docker-volume mongo-express


    【解决方案1】:

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

    volumes:
      demo-vol:
        driver: local
    

    并尝试删除斜线

    volumes:
      - demo-vol:/data/db
    

    【讨论】:

      猜你喜欢
      • 2021-12-28
      • 2021-12-03
      • 2020-05-17
      • 1970-01-01
      • 2021-08-19
      • 2023-03-22
      • 2019-09-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多