4

In my project I have few container managed by docker-compose. I would like to store data from mongoDB on persistent volume. MongoDB seems to store data in /data/db but files are not transferred to my host file system and they disappear after rebuilding container.

Here is my docker-compose config file:

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 Answer 1

5

You tries to use what is called 'named volumes' that are stored inside docker itself. To mount volume to your file system just write path and not volume name. 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
Sign up to request clarification or add additional context in comments.

2 Comments

i get permission denied when trying to look at the volume.
@chovy if it is still relevant... docs.docker.com/docker-for-windows/#shared-drives

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.