Монго БД персистентность в докере с томами - PullRequest
0 голосов
/ 12 сентября 2018

Я пытаюсь создать контейнер базы данных Монго, но не могу сохранить данные.Вот мой docker-compose.yml

version: "3.2"
services:
  mongodb:
  image: mongo:2.4
  command: --smallfiles 
  ports:
    - 27017:27017
  volumes:
    - type: volume
      source: mongodb_data_volume
      target: /data
volumes:
  mongodb_data_volume:
    external: true

После docker-compose и выполнения exec -it в mongodb я создаю новую пустую базу данных, а затем перечисляю содержимое подключенного тома:

root@cf8330019f91:/data/db# ls
_tmp     admin.1   journal  local.ns
admin.0  admin.ns  local.0  mongod.lock

Но затем я выполняю цикл создания и уменьшения, и тот же смонтированный том сбрасывается до начальных значений.

root@d18bda47d0b3:/data/db# ls
_tmp  journal  local.0  local.ns  mongod.lock

Я пытался остановить только контейнер, а не создавать,и затем данные сохраняются ... что указывает на то, что я все еще использую внутреннее хранилище.Если это так, как мне использовать внешний том?

Я использую Mac и Docker версии 18.06.1-ce-mac73.

1 Ответ

0 голосов
/ 13 сентября 2018

Я повторил ту же проблему в моей локальной системе и попытался ее решить. Я изменил целевой путь в томе docker-compose с «target: / data» на «target: / data / db» согласно документациидано в https://hub.docker.com/_/mongo/ и все работает.Используйте обновленный файл docker-compose, как указано ниже

    version: "3.2"
    services:
      mongodb:
      image: mongo:2.4
      command: --smallfiles 
      ports:
        - 27017:27017
      volumes:
        - type: volume
          source: mongodb_data_volume
          target: /data/db
    volumes:
      mongodb_data_volume:
        external: true

Протестировано и работает !!!

...