В этом руководстве мы рассмотрим процесс установки MongoDB в Docker – метод, который используют как разработчики, так и профессионалы DevOps. Использование Docker для установки MongoDB дает преимущества в плане переносимости, масштабируемости и изоляции. Инкапсулируя MongoDB в контейнеры, вы не только упрощаете развертывание, но и обеспечиваете стабильную производительность в различных средах. Мы рассмотрим причины, по которым стоит выбрать Docker для установки MongoDB, и раскроем подход к современному управлению базами данных. Все действия, представленные в инструкции можно выполнить на базе VPS/VDS на Linux.
Обновление пакетов и утилит
В начале процесса установки мы обновляем индексы и пакеты обновления текущих приложений и утилит. Это поможет избежать потенциальных проблем с совместимостью:
apt update && apt upgrade -y
Посмотрите на завершение команды! Если они завершились успешно, то можно идти дальше, другим способом проверить подключение к интернету, убедиться, что ваш репозиторий работает правильно и обновить пакет с помощью команды:
apt updateDocker представляет собой программное обеспечение, которое может помочь запустить контейнер или виртуализировать приложение в изолированной среде с подготовленной библиотекой и другими зависимостями. Это поможет запустить утилиту, приложение или сервис без дополнительных действий. Первым шагом в этом направлении будет загрузка пакета:
apt install docker.io docker-compose -y
Давайте дадим некоторые пояснения. Если в первом случае мы используем программное обеспечение, предназначенное для виртуализации контейнеров, и не имеем инструментов для управления многоконтейнерностью, то во втором мы имеем это. Docker-compose позволяет построить многоконтейнерную среду и эффективно управлять этой связкой.
Установка MongoDB в Docker
Docker уже имеет связь с официальным репозиторием и позволяет загружать любые пакеты из него. Для старта приведен пример типа сервера:
docker run --name my-mongo -d mongo
Посмотрите на синтаксис. Команда docker вызывает утилиту docker, запускает ее подкоманду для запуска контейнера, опция –name помогает обозначить контейнер так, как вам нужно, а опция -d указывает на образ из репозитория. Проверьте список запущенных командой контейнеров:
docker ps
Вы можете увидеть сводную информацию о контейнерах и их состоянии с указанием времени создания. В этой установке мы не задали прямой порт для нашего приложения, поэтому по умолчанию мы будем использовать 27017. Если мы захотим использовать MongoDB удаленно, то в этом случае мы укажем в настройках соединения наш белый IP-адрес и тот же порт, что мы видели ранее. Одним словом, тот же процесс, что мы используем в PAT.
Теперь у нас есть два способа использования MongoDB: в первом случае мы загружаем mongosh и подключаемся к localhost:27017, или мы можем использовать команду ниже для прямого подключения к контейнеру:
docker exec -it my-mongo bash
Мы используем подкоманду exec и опцию unite -it, где i означает интерактивное использование контейнера, а t – сборку с помощью терминала в Docker и на хост-машине. Как вы можете видеть, в последней строке после знака at указан идентификатор контейнера. Теперь мы можем запустить в этом окружении mongosh для работы с системой, уже локально:
mongosh
Теперь у нас есть правильно работающая система, если нам нужно проверить журналы запуска контейнеров:
docker logs my-mongoЕсли вы хотите построить свою систему на базе MongoDB, то такой способ установки в перспективе будет неэффективен. Вместо этого используйте docker-compose!
Установка MongoDB с помощью Docker Compose
Оркестратор от Docker, который помогает управлять и создавать пучки контейнеров для совместного использования и работы! В этом случае мы будем использовать немного другую технику. Создайте рабочую папку и файл командой:
mkdir -p /tmp/mongodb && touch /tmp/mongodb/dd.ymlИ введите этот текст в файл:
echo "version: '3.1'
services:
mongo:
image: mongo
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: admin
MONGO_INITDB_ROOT_PASSWORD: my_password
mongo-express:
image: mongo-express
restart: always
ports:
- 8081:8081
environment:
ME_CONFIG_MONGODB_ADMINUSERNAME: admin
ME_CONFIG_MONGODB_ADMINPASSWORD: my_password
ME_CONFIG_MONGODB_URL: mongodb://admin:my_password@mongo:27017/" >> /tmp/mongodb/dd.yml

Этот конфигурационный файл для docker-compose включает сервисы или образы для контейнеров, которые мы будем использовать с различными опциями. После команды service мы также можем указать имя контейнера и выбрать образ, свойство restart и переменные env. В данном случае мы установим два образа: один с mongodb-сервером, а второй с web-shell для них. Запустите docker-compose с помощью команды:
docker-compose -f /tmp/mongodb/dd.yml up
После установки веб-сервиса мы можем подключиться через localhost или используя белый IP-адрес для управления СУБД и не забудьте указать порт из конфига, в нашем случае 8081, тогда url будет выглядеть как https//:163.2.32.1:8081. Основные учетные данные для подключения admin как логин и pass как пароль:

В заключение можно сказать, что это руководство провело вас через надежный процесс беспроблемного развертывания MongoDB в Docker – стратегию, которую используют как разработчики, так и профессионалы DevOps. Используя возможности Docker для установки MongoDB, вы получаете беспрецедентные преимущества в плане переносимости, масштабируемости и изоляции. Инкапсуляция MongoDB в контейнеры упрощает развертывание, обеспечивая стабильную производительность в различных средах.