Как импортировать бэкап в mongo?

Для импорта бэкапа базы данных MongoDB в Docker-контейнер с помощью официального образа Mongo, следуйте этим шагам:

  1. Первым делом убедитесь, что у вас есть бэкап базы данных MongoDB в формате BSON. Этот файл должен содержать все необходимые данные и коллекции для импорта.
  1. Запустите контейнер MongoDB с помощью команды docker run. Укажите имя контейнера, маппинг портов и привязку локальной директории к директории внутри контейнера для сохранения данных. Например:
docker run -d --name mymongo -p 27017:27017 -v /путь/к/директории:/data/db mongo

Где -d означает запуск контейнера в фоновом режиме, --name задает имя контейнера (в данном случае "mymongo"), -p маппит порт хоста 27017 на порт контейнера 27017, -v привязывает локальную директорию к директории в контейнере /data/db, где MongoDB хранит данные.

  1. Зайдите в контейнер MongoDB, используя команду docker exec, чтобы выполнить команды внутри контейнера:
docker exec -it mymongo bash

Где mymongo - имя запущенного контейнера.

  1. Внутри контейнера создайте новую директорию для импорта данных, например:
mkdir /data/db/backup
  1. Скопируйте файл бэкапа внутрь контейнера с помощью команды docker cp. Здесь расположение вашего бэкапа на хосте будет зависеть от вашей конфигурации:
docker cp /путь/к/файлу.bson mymongo:/data/db/backup/

Эта команда копирует файл .bson из вашей локальной файловой системы внутрь контейнера в директорию /data/db/backup/.

  1. Теперь, когда файл бэкапа находится внутри контейнера, вам нужно восстановить базу данных с его помощью. Используйте команду mongorestore внутри контейнера:
mongorestore --db <имя_базы_данных> /data/db/backup

Здесь <имя_базы_данных> - название базы данных, в которую вы хотите импортировать бэкап.

  1. После завершения импорта вы можете проверить, что база данных была успешно импортирована, подключившись к контейнеру с помощью команды docker exec и запустив mongo shell:
docker exec -it mymongo mongo

Примечание: mymongo - имя контейнера.

  1. Далее, внутри shell MongoDB, переключитесь на импортированную базу данных и проверьте ее содержимое:
use <имя_базы_данных>
show collections

Вывод команды show collections должен показать список коллекций, которые были восстановлены из бэкапа.

Вот и все! Теперь вы импортировали бэкап базы данных MongoDB в Docker-контейнер.