#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 пуст