Запуск MariaDB через Docker

Иногда требуется запустить СУБД MariaDB на сервере. Ниже описана инструкция, как запустить MariaDB через Docker.

Для начала создайте сеть, в которой будет находится СУБД Mysql со статическим IP адресом. Сеть нужно создать, т.к. стандартная сеть docker не дает возможности установить статический IP адрес у контейнера.

docker network create -d bridge --subnet=172.20.0.0/16 dockernet -o "com.docker.network.bridge.name"="dockernet"

Создание хранилища для базы данных.

docker volume create mariadb_data

Запуск контейнера Mysql

docker run -d -e MYSQL_ROOT_PASSWORD=mysqlrootpassword --name mariadb --log-driver=journald --restart=unless-stopped -v mariadb_data:/var/lib/mysql --ip=172.20.0.5 --network="dockernet" mariadb:10.4.8 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --sql-mode="" --ft_min_word_len=1 --bind-address=172.20.0.5 --wait_timeout=600 --max_allowed_packet=1G --innodb_buffer_pool_size=100M --net_read_timeout=3600 --net_write_timeout=3600

Параметры —restart:
unless-stopped — будет останавливаться при перезапуске системы
always — будет автоматически запускаться при старте системы

Mysql будет запущен на 172.20.0.5:3306

Пароль mysqlrootpassword поменяйте на другой

Настройте пользователя mysql для удаленного подключения

docker exec -it mariadb mysql

Выполните команды:

SELECT host, user, password FROM mysql.user;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mysqlrootpassword';
FLUSH PRIVILEGES;
quit

Перезапустите контейнер

docker stop mariadb
docker start mariadb