uz
KA
июня 23, 2025
Обновлено июня 23, 2025

Установка и Настройка MongoDB в Docker

Linux MongoDB

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

Обновление пакетов и утилит

В начале процесса установки мы обновляем индексы и пакеты обновления текущих приложений и утилит. Это поможет избежать потенциальных проблем с совместимостью:

apt update && apt upgrade -y
Обновление пакетов
Скриншот №1 — Обновление пакетов

Посмотрите на завершение команды! Если они завершились успешно, то можно идти дальше, другим способом проверить подключение к интернету, убедиться, что ваш репозиторий работает правильно и обновить пакет с помощью команды:

apt update

Docker представляет собой программное обеспечение, которое может помочь запустить контейнер или виртуализировать приложение в изолированной среде с подготовленной библиотекой и другими зависимостями. Это поможет запустить утилиту, приложение или сервис без дополнительных действий. Первым шагом в этом направлении будет загрузка пакета:

apt install docker.io docker-compose -y
Обновление пакетов в иных системах
Скриншот №2 — Обновление пакетов в иных системах

Давайте дадим некоторые пояснения. Если в первом случае мы используем программное обеспечение, предназначенное для виртуализации контейнеров, и не имеем инструментов для управления многоконтейнерностью, то во втором мы имеем это. Docker-compose позволяет построить многоконтейнерную среду и эффективно управлять этой связкой.

Установка MongoDB в Docker

Docker уже имеет связь с официальным репозиторием и позволяет загружать любые пакеты из него. Для старта приведен пример типа сервера:

docker run --name my-mongo -d mongo
Скачивание образа
Скриншот №3 — Скачивание образа

Посмотрите на синтаксис. Команда docker вызывает утилиту docker, запускает ее подкоманду для запуска контейнера, опция –name помогает обозначить контейнер так, как вам нужно, а опция -d указывает на образ из репозитория. Проверьте список запущенных командой контейнеров:

docker ps
Процессы Docker
Скриншот №4 — Процессы Docker

Вы можете увидеть сводную информацию о контейнерах и их состоянии с указанием времени создания. В этой установке мы не задали прямой порт для нашего приложения, поэтому по умолчанию мы будем использовать 27017. Если мы захотим использовать MongoDB удаленно, то в этом случае мы укажем в настройках соединения наш белый IP-адрес и тот же порт, что мы видели ранее. Одним словом, тот же процесс, что мы используем в PAT.

Теперь у нас есть два способа использования MongoDB: в первом случае мы загружаем mongosh и подключаемся к localhost:27017, или мы можем использовать команду ниже для прямого подключения к контейнеру:

docker exec -it my-mongo bash
Запуск команды в контейнере
Скриншот №5 — Запуск команды в контейнере

Мы используем подкоманду exec и опцию unite -it, где i означает интерактивное использование контейнера, а t – сборку с помощью терминала в Docker и на хост-машине. Как вы можете видеть, в последней строке после знака at указан идентификатор контейнера. Теперь мы можем запустить в этом окружении mongosh для работы с системой, уже локально:

mongosh
Запуск оболочки
Скриншот №6 — Запуск оболочки

Теперь у нас есть правильно работающая система, если нам нужно проверить журналы запуска контейнеров:

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

Screenshot_1
Скриншот №7 — Конфигурационный файл для docker-compose

Этот конфигурационный файл для docker-compose включает сервисы или образы для контейнеров, которые мы будем использовать с различными опциями. После команды service мы также можем указать имя контейнера и выбрать образ, свойство restart и переменные env. В данном случае мы установим два образа: один с mongodb-сервером, а второй с web-shell для них. Запустите docker-compose с помощью команды:

docker-compose -f /tmp/mongodb/dd.yml up
Скачивание
Скриншот №8 — Скачивание

После установки веб-сервиса мы можем подключиться через localhost или используя белый IP-адрес для управления СУБД и не забудьте указать порт из конфига, в нашем случае 8081, тогда url будет выглядеть как https//:163.2.32.1:8081. Основные учетные данные для подключения admin как логин и pass как пароль:

web
Скриншот №9 — Web

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

Оценка:
5 из 5
Аverage rating : 5
Оценок: 4
100029 Ташкент Улица Якка Чинар, дом 2/1
ООО «ИТГЛОБАЛКОМ ЛАБС»

Вам также может быть интересно...