MySQL в Docker
В этой статье опишу как установить СУБД MySQL (MariaDB) в контейнер Docker для дальнейшего использования с другими контейнерами. MariaDB — форк системы управления базами данных MySQL, разрабатываемое сообществом под лицензией GNU GPL.
Для начала необходимо придумать пароли ук пользователям. Они передаются через три переменные окружения:
- MARIADB_USER — имя пользователя базы данных
- MARIADB_PASSWORD — пароль пользователя базы данных
- MARIADB_ROOT_PASSWORD — пароль пользователя ROOT
Теперь для создания и запуска контейнера СУБД достаточно следующей команды:
# sudo docker run -d --name dbserver --env MARIADB_USER=dbuser1 --env MARIADB_PASSWORD=dbuserpwd --env MARIADB_ROOT_PASSWORD=rootpwd mariadb:latest
Если к базе данных нужен пароль извне (например для доступа через приложения-клиенты), то необходимо пробросить порт 3306:
# sudo docker run -d --name dbserver --env MARIADB_USER=dbuser1 --env MARIADB_PASSWORD=dbuserpwd --env MARIADB_ROOT_PASSWORD=rootpwd -p 3306:3306 mariadb:latest
В результате создался контейнер c MariaDB, что видно в выводе Docker:

В принципе уже можно использовать и так, но давайте ещё подключим phpmyadmin. Будем использовать для соединения контейнеров связи, а не подключение по IP:
# sudo docker run --name phpmyadmin -d --link dbserver:db -p 8081:80 phpmyadmin
В результате на 8081 порту должен запуститься phpmyadmin:

Пробуем залогиниться под рутом:

Даём привилегии ранее созданному пользователю:

Теперь установленную СУБД можно использовать совместно с различными сервисами, которые могут быть как расположены как в других контейнерах, так и во вне их (в случае проброса порта).