В каких ситуациях вы используете Docker для работы с базами данных?
В этом посте мы шаг за шагом покажем, как создать базу данных mariaDb с помощью docker.
В подавляющем большинстве случаев не рекомендуется контейнеризировать базы данных по нескольким причинам, таким как:
-
Автоматическое масштабирование подавляющего большинства баз данных не требуется,
-
Несмотря на последние разработки Docker, он по-прежнему плохо справляется с нагрузками, возникающими при запросах и вставках баз данных,
-
Если том не настроен на хосте (т.е. вне контейнера) и он будет удален, хранящиеся в нем данные будут уничтожены,
-
Существуют специальные сервисы, которые гораздо лучше работают с базами данных, например, RDS от AWS, снижая сложность управления базами данных, которая многим разработчикам кажется сложной.
Итак, почему создание баз данных в docker может быть интересным? Просто, эта практика очень хороша для сред разработки. Создавая контейнер в docker, снимается сложность управления им, значительно облегчая процесс локальной разработки.
Как создать базу данных в контейнере
Изначально у нас должны быть установлены docker и docker compose, если нет, следуйте пошаговой документации в соответствии с вашей операционной системой.
Установив Docker, мы создадим файл docker-compose.yml для параметризации создания базы данных Docker, облегчающей создание образа и контейнера. Вот пример yml-файла с использованием образа mariaDb:
version: '3.4'
services:
mariadb:
image: mariadb:10.2
environment:
MYSQL_ROOT_PASSWORD: 'mypassword'
MYSQL_DATABASE: 'mydatabasename'
MYSQL_USER: 'mydatabaseuser'
MYSQL_PASSWORD: 'mydatabasepassword'
ports:
- 3306:3306
Таким образом, у нас есть файл yml, который создаст экземпляр Mariadb, используя образ 10.2, с учетными данными, настроенными в среде, доступной через порт 3306.
После создания файла зайдите в его каталог через терминал и выполните команду:
docker-compose up
При первом создании образа Docker будет загружен используемый образ.
Используя другой терминал (контейнер будет запущен в этом терминале), выполните следующую команду, чтобы убедиться, что контейнер активен:
docker ps
Ожидаемая отдача будет примерно такой, что принесет несколько сведений о вашем контейнере:
Доступ к вашей базе данных
Теперь, когда контейнер активен, мы будем использовать некоторый инструмент базы данных для доступа к нему. Я лично рекомендую использовать Dbeaver, но не стесняйтесь использовать любой другой.
Войдя в Dbeaver, переходим к новому соединению (левый верхний угол) и выбираем MariaDb
В учетных данных мы заполняем хост как ‘localhost’ и порт как ‘3306’. В Database, Username and Password мы заполняем как в базовом конфигурационном файле docker-compose.yml:
Нажав кнопку Проверить соединение, мы ждем:
Наконец, мы нажимаем кнопку Finish, и наша база данных настроена и подключена в инструменте для визуализации и манипулирования данными. Если вы хотите подключиться к какому-либо приложению, используйте учетные данные из файла композиции.