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: