Mongo db не сохраняет данные при остановке контейнера с volume

Непонимаю в чем проблема, при остановке докер контейнера mongodb не сохраняет данные. Потом я заново с помощью команды docker-compose up включаю контейнеры и бд снова пустая.

docker-compose.yml

version: '3.1'

services:
mongo:

image: mongo

restart: always

environment:
  MONGO_INITDB_ROOT_USERNAME: root
  MONGO_INITDB_DATABASE: users
  MONGO_INITDB_ROOT_PASSWORD: example

 mongo-express:
image: mongo-express
restart: always
depends_on:
  - mongo

ports:
  - 8081:8081

environment:
  ME_CONFIG_MONGODB_ADMINUSERNAME: root
  ME_CONFIG_MONGODB_ADMINPASSWORD: example
  ME_CONFIG_MONGODB_URL: mongodb://root:example@mongo:27017/
  
myapplication:
image: application
restart: always
depends_on:
  - mongo
  - mongo-express

ports:
  - 8080:8080

environment:
  MONGODB_CONNSTRING: mongodb://root:example@mongo:27017/

Dockerfile

FROM openjdk:8-jdk
EXPOSE 8080:8080
RUN mkdir /app
COPY ./build/install/example/ /app/
WORKDIR /app/bin
CMD ["./example"]

Ответы (1 шт):

Автор решения: Exploding Kitten

Для того, чтобы у вас данные сохранялись можно использовать volume. Есть два способа, первый позволяет вам примонтировать папку с вашей системы (хоста) в контейнера, например, в папку data, которая лежит рядом с docker-compose:

version: '3.1'

services:
  mongo:
    image: mongo
    restart: always
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_DATABASE: users
      MONGO_INITDB_ROOT_PASSWORD: example
    volumes:
      - ./data:/data/db
...

Или при помощи volume:

version: '3.1'

services:
  mongo:
    image: mongo
    restart: always
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_DATABASE: users
      MONGO_INITDB_ROOT_PASSWORD: example
    volumes:
      - mongo-data:/data/db

...
  
volumes: 
  mongo-data:
→ Ссылка