使用docker-compose在音量上保存mongodb

时间:2017-07-03 14:35:58

标签: mongodb docker docker-compose

在我的项目中,我有几个由docker-compose管理的容器。我想将mongoDB中的数据存储在持久卷上。 MongoDB似乎将数据存储在/ data / db中,但文件不会传输到我的主机文件系统,并且在重建容器后它们会消失。

这是我的docker-compose配置文件:

version: '2'

services:

  db:
    image: mongo:latest
    volumes: 
      - "db-data:/data/db"
    ports:
      - "27017:27017"
    networks:
      - elk

  web: 
    build: ./app
    environment:
      - WAIT_COMMAND=1
    ports:
      - "3000:3000"
    networks:
      - elk
    depends_on: 
      - db


networks:
  elk:
    driver: bridge

volumes:
  db-data:

1 个答案:

答案 0 :(得分:4)

您尝试使用所谓的'命名卷'存储在docker本身内部。要将卷装入文件系统,只需写入路径而不是卷名。 https://docs.docker.com/compose/compose-file/#short-syntax-3

version: '2'

services:

  db:
    image: mongo:latest
    volumes: 
      - /data/db:/data/db
    ports:
      - "27017:27017"
    networks:
      - elk

  web: 
    build: ./app
    environment:
      - WAIT_COMMAND=1
    ports:
      - "3000:3000"
    networks:
      - elk
    depends_on: 
      - db


networks:
  elk:
    driver: bridge