Отредактировано 2 несколько месяцев назад от ExtremeHow Редакционная команда
ДокерЛинуксMongoDBБаза данныхКонтейнеризацияРазработкаВиртуализацияРазвертываниеНастройкаКонфигурация
Перевод обновлен 2 несколько месяцев назад
MongoDB - это популярная NoSQL база данных, которая позволяет гибко и масштабируемо управлять данными. Docker, с другой стороны, - это платформа, которая позволяет программному обеспечению работать в контейнерах, обеспечивая консистентность приложений на любой платформе. Использование Docker для настройки MongoDB на Linux объединяет гибкость MongoDB с мощными возможностями контейнеризации Docker. Это руководство познакомит вас с процессом настройки MongoDB на Docker в среде Linux. Мы рассмотрим каждый шаг подробно, чтобы вы могли успешно его реализовать.
Прежде чем начать настройку MongoDB на Docker, убедитесь, что у вас есть следующее:
Если Docker не установлен на вашей системе Linux, вы можете выполнить следующие шаги для его установки:
sudo apt update
sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io
После выполнения этих шагов Docker должен быть успешно установлен на вашей системе Linux. Вы можете проверить установленную версию, используя следующую команду:
docker --version
Теперь, когда Docker установлен, следующий шаг - загрузить образ MongoDB с Docker Hub. Docker Hub - это облачная библиотека, где пользователи могут найти образы для различного программного обеспечения. Чтобы загрузить образ MongoDB, используйте следующую команду:
sudo docker pull mongo
Эта команда загрузит последнюю версию MongoDB из Docker Hub. Вы можете указать конкретную версию, добавив двоеточие (:) и номер версии после "mongo". Например, чтобы загрузить версию 4.4, используйте:
sudo docker pull mongo:4.4
После загрузки образа MongoDB вы можете создать и запустить контейнер, используя этот образ. Контейнер - это как легковесная виртуальная машина, которая может запускать различные приложения. Выполните следующую команду, чтобы запустить контейнер MongoDB:
sudo docker run --name mongodb -d -p 27017:27017 mongo
Анализ команды:
--name mongodb
: Присваивает контейнеру имя "mongodb".-d
: Запускает контейнер в изолированном режиме, то есть он будет работать в фоновом режиме.-p 27017:27017
: Отображает порт 27017 на хост-машине на порт 27017 контейнера, который является портом по умолчанию, на котором MongoDB слушает.mongo
: Указывает использовать образ MongoDB.После запуска контейнера MongoDB необходимо удостовериться, что все настроено правильно. Проверьте статус Docker контейнера, используя следующую команду:
sudo docker ps
Эта команда покажет список запущенных контейнеров, и вы увидите контейнер MongoDB среди них. Он покажет такие детали, как идентификатор контейнера, имя, использованный образ и назначенный порт.
Вы можете дополнительно проверить это, получив доступ к MongoDB с помощью оболочки MongoDB. Сначала войдите в работающий контейнер MongoDB:
sudo docker exec -it mongodb bash
Внутри оболочки контейнера запустите оболочку MongoDB, набрав следующую команду:
mongo
Это выдаст вам приглашение оболочки MongoDB, которое подтвердит, что MongoDB запущен внутри контейнера Docker.
По умолчанию, любые данные, хранящиеся в контейнере Docker, не сохраняются. Это означает, что если контейнер будет удален, все данные, созданные в нем, будут утеряны. Чтобы данные сохранялись, вам необходимо отобразить каталог на хост-машине в каталог внутри контейнера.
Для этого остановите контейнер MongoDB:
sudo docker stop mongodb
Затем запустите новый контейнер с маппингом тома:
sudo docker run --name mongodb -d -p 27017:27017 -v /my/own/datadir:/data/db mongo
Объяснение нового флага:
-v /my/own/datadir:/data/db
: Отображает каталог /data/db
внутри контейнера на /my/own/datadir
на хост-машине.Замените /my/own/datadir
на путь, где вы хотите сохранять данные MongoDB на вашей хост-машине. Этот каталог будет сохранять все данные MongoDB, и они сохранятся, даже если вы удалите контейнер.
Запуск MongoDB с настройками по умолчанию может быть небезопасным для производственной среды. Вот некоторые основные шаги для повышения безопасности.
Сначала запустите оболочку MongoDB и создайте администратора:
mongo
Затем перейдите в базу данных admin
:
use admin
Создайте администратора, выполнив следующую команду. Обязательно замените "username" и "password" на желаемое имя пользователя и пароль:
db.createUser({ user: "username", pwd: "password", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] })
Чтобы включить аутентификацию, вам нужно отредактировать файл конфигурации. Выйдите из оболочки и остановите работающий контейнер:
exit
sudo docker stop mongodb
Запустите новый контейнер MongoDB с включенной аутентификацией:
sudo docker run --name mongodb -d -p 27017:27017 -v /my/own/datadir:/data/db mongo --auth
Теперь, каждый раз, когда вы подключаетесь к базе данных, потребуется аутентификация.
Для более сложных настроек можно предоставить файл конфигурации при запуске контейнера MongoDB. Создайте файл конфигурации на хост-машине и передайте его в контейнер с помощью следующей команды:
sudo docker run --name mongodb -d -p 27017:27017 -v /my/own/datadir:/data/db -v /my/own/config:/etc/mongo mongo --config /etc/mongo/mongod.conf
Замените /my/own/config
на каталог, в котором находится ваш файл mongod.conf
. Это позволит настроить такие параметры, как репликации, шардинг и логгирование.
Настройка MongoDB на Docker для Linux предоставляет гибкий и эффективный способ управления базой данных с дополнительной выгодой от контейнеризации Docker. Это обеспечивает консистентность в разных средах и упрощает процессы развертывания. Следуя этим шагам, вы сможете эффективно запустить и защитить MongoDB на Docker.
Функции изоляции Docker позволяют вам легко создавать и удалять контейнеры, что упрощает тестирование и управление. Добавление таких мер безопасности, как сохранение данных и аутентификация, позволяет надежно использовать мощные функции MongoDB в производственной среде. Запомните, что с контейнеризацией знание о том, как управлять хранением данных и настройками, может значительно повысить производительность и надежность вашего настроенного приложения базы данных.
Если вы найдете что-то неправильное в содержании статьи, вы можете