Создание Docker-контейнера Mongo с локальным хранилищем на хосте. - PullRequest
1 голос
/ 15 октября 2019

Я хочу запустить mongo db в контейнере Docker. Я вытащил изображение и запустил его. Так что, похоже, все в порядке.

Но каждый раз, когда я запускаю его, БД перезаписывается, поэтому я теряю любые изменения. Поэтому я хочу как-то сопоставить внутреннее хранилище контейнеров с моей локальной папкой хоста.

Должен ли я написать Dockerfile или / и docker-compose.yaml? Я полагаю, это простой вопрос, но, будучи новичком в докере, я не могу понять, что читать, чтобы получить полное понимание.

1 Ответ

3 голосов
/ 15 октября 2019

Вам не нужно писать Dockerfile и усложнять задачу, просто используйте официальное изображение , как указано в файле команды или композиции.

Вы можете использовать обе опции: либо docker run, либо docker-compose но путь должен быть правильным в отображении, чтобы данные оставались постоянными.

Вот способ

  • Создать каталог данных на подходящем томе в вашей хост-системе, например, /my/own/datadir.

Запустите контейнер mongo следующим образом:

$ docker run --name some-mongo -v /my/own/datadir:/data/db -d mongo

Часть команды -v /my/own/datadir:/data/db монтирует каталог /my/own/datadir из базовой системы хоста как /data/db внутри контейнера, куда MongoDB по умолчанию будет записывать свои файлы данных.

том монтирования

с docker-compose

version: "2"
services:
 mongo:
   image: mongo:latest
   restart: always
   ports:
     - "27017:27017"
   environment:
     - MONGO_INITDB_DATABASE=pastime
     - MONGO_INITDB_ROOT_USERNAME=root
     - MONGO_INITDB_ROOT_PASSWORD=root_password
   volumes:
     - /my/own/datadir:/data/db
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...