mongodump внутри docker не создает никаких файлов

#mongodb #docker

#mongodb #docker

Вопрос:

Я использую docker для размещения базы данных mongo, и теперь я пытаюсь сбросить всю базу данных. Все работает нормально, за исключением того, что файлы не создаются. Никаких ошибок вообще. Это то, что я пробовал:

 docker exec -ti mongodb mongodump --out /backup --host localhost -u admin -p admin
  

Я использую tutum/mongodb изображение из DockerHub.
Это полный журнал после выполнения этой команды: http://pastebin.com/SXCqv16v

РЕДАКТИРОВАТЬ: вывод docker inspect mongodb : http://pastebin.com/5sdheAwK

мой файл docker-compose.yml: http://pastebin.com/JmfKbtdJ

Комментарии:

1. Он записывает резервную копию в / backup внутри контейнера docker, если вы не использовали этот том при запуске mongo docker. Можете ли вы отправить команду запуска docker или вывод docker inspect mongodb

2. @JamieMcCrindle Я обновил свой вопрос

3. резервная копия записывается, но она записывается внутри контейнера. Я предполагаю, что вы хотите, чтобы это было за пределами docker? например, в каталоге /backup хоста docker

4. @JamieMcCrindle Да, это именно то, что я хочу

Ответ №1:

Вот как я это решил. Проблема заключалась в привязке папки хоста к папке контейнера:

 mongodb:
  image: tutum/mongodb
  environment:
    - MONGODB_PASS=admin
    - MONGODB_USER=admin
  container_name: mongodb
  volumes:
    - ../backup:/backup
  

Ответ №2:

Я полагаю, вам просто нужно сопоставить каталог /backup с томом на хосте docker. Измените запись docker compose mongodb на (замените /hostbackupdir соответствующей папкой на хосте)

 mongodb:
  image: tutum/mongodb
  environment:
    - MONGODB_PASS=admin
    - MONGODB_USER=admin
  container_name: mongodb
  volumes:
    - /hostbackupdir:/backup
  

Примечание: вероятно, неплохо также сопоставить ваш каталог /data/db с каталогом на вашем хосте. это было бы что-то вроде (замените /hostbackupdir и /hostdatadir соответствующими папками на хосте):

 mongodb:
  image: tutum/mongodb
  environment:
    - MONGODB_PASS=admin
    - MONGODB_USER=admin
  container_name: mongodb
  volumes:
    - /hostbackupdir:/backup
    - /hostdatadir:/data/db
  

Комментарии:

1. Не работает, я создал папку /backup внутри хоста и обновил docker-compose, как вы указали, но каталог /backup пуст