August 29, 2024

Локальная база данных в Docker

Существует множество способов быстро поднять локальный сервер базы данных для разработки. Это краткий гайд для быстрой базовой настройки при помощи Docker.

Что понадобится:

1. Установленный Docker. Инструкция по установке.

2. Образ сервера базы данных. Например, MariaDB. Образ на Docker Hub.

3. Клиент для работы с базами данных. Например, TablePlus.

Запуск сервера БД в Docker:

docker run --detach --name mydb \
 -p 33067:3306 --env MARIADB_ROOT_PASSWORD=root mariadb:latest

Стоит обратить внимание, что:

- mydb — имя контейнера, в котором будет работать база данных

- 33067:3306 — здесь 33067 внешний порт, который будет использоваться для подключения к базе данных

- 1234 — пароль для пользователя root

Остановка сервера:

Для остановки и удаления контейнера с базой данных выполните команду:

docker stop mydb && docker rm mydb

Проверка запущенных контейнеров:

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

docker ps
Вывод команды docker ps

Подключение к базе данных:

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

- Хост: 127.0.0.1

- Порт: 33067

- Пользователь: root

- Пароль: 1234

Настройки подключения к БД

После подключения можно создать базы данных и таблицы через интерфейс клиента или sql запросы.

Создание новой БД

Сохранение данных:

Чтобы данные не пропали при остановке или удалении контейнера, можно настроить постоянное хранилище, указав volume (том) в команде запуска контейнера. Пример:

docker run --detach --name mydb \
 -p 33067:3306 -v ./databases:/var/lib/mysql \
 --env MARIADB_ROOT_PASSWORD=1234 mariadb:latest

В этом примере локальная директория ./databases будет привязана к директории /var/lib/mysql внутри контейнера, где БД MariaDB хранит свои данные. Таким образом, данные сохранятся на локальной машине и останутся доступными даже после перезапуска контейнера.