Dims
Dims

Reputation: 51209

Where does docker stores my MongoDB data?

I have created the following docker-compose.yml file

# Use root/example as user/password credentials
version: '3.1'

services:

  mongo:
    image: mongo
    restart: always
    ports:
      - 27017:27017
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: example

  mongo-express:
    image: mongo-express
    restart: always
    ports:
      - 8081:8081
    environment:
      ME_CONFIG_MONGODB_ADMINUSERNAME: root
      ME_CONFIG_MONGODB_ADMINPASSWORD: example
      ME_CONFIG_MONGODB_URL: mongodb://root:example@mongo:27017/

Then started it with

sudo docker-compose up

Then connected to mongo and created few documents. Then I have restarted my compose. Surprisingly, the data persists. As far I remeber, Docker was forgetting data if no volumes configured. Is this changed?

Where is it keeping my data in this situation?

Upvotes: 3

Views: 4802

Answers (2)

Nicolas CHALAUX
Nicolas CHALAUX

Reputation: 89

take a look at the directory /var/lib/docker

https://betterprogramming.pub/persistent-databases-using-dockers-volumes-and-mongodb-9ac284c25b39

You can list you docker container with

docker ps

and then get the mount volume

docker inspect -f '{{ .Mounts }}' containerid

https://stackoverflow.com/a/30133768/5857581

Upvotes: 1

Viettel Solutions
Viettel Solutions

Reputation: 1489

By default, MongoDB’s default data directory path is \data\db and be keeped inside your container, so as long as the container is not completely removed, you can resume your container and data still stay there. In this case, if you restart MongoDB by docker-compose stop/start, it'll not remove your containers, just stop them and start again, so your data may persist. Unless you was using docker-compose down/up, which will completely remove and recreate new containers, then your data will be wiped.

Upvotes: 2

Related Questions