☰ Оглавление

Пример использования Docker для запуска MySQL

Я уже рассматривал пример использования Docker для запуска Ruby on Rails.

Там мы собирали свой контейнер с нуля. Здесь ситуация примо противоположная: давайте рассмотрим, как использовать уже полностью готовый контейнер с максимальным комфортом для себя.

Запуск MySQL

Предположим, для ковыряния со старым проектом нам понадобился старый MySQL. Засорять систему мы не хотим и тут нам на помощь приходит Docker.

Скачиваем образ:

docker pull mysql:5.6

Теперь вытащим необходимые файлы на хост-систему. Для этого надо иметь запущенный контейнер:

docker run -it --rm --name mysql mysql:5.6 /bin/sh

И выполнить на хост-системе копирование

docker cp mysql:/etc/mysql .
rm mysql/my.cnf
ln -s mysql.cnf mysql/my.cnf
docker cp mysql:/var/lib/mysql var

Да. Конкретно этот контейнер сделан так, что надо попереставлять симлинки. Или копировать иначе. Тут решать вам.

Теперь вы можете правильно файлы настройки на хост-системе. Эти правки не будут пропадать при перезапуске контейнера. Так же не будет пропадать содержимое базы данных.

Запускаем, с указанием портов и точек монтирования:

docker run -it --rm --name mysql -v $PWD/var:/var/lib/mysql -v $PWD/mysql:/etc/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql:5.6

Теперь к базе можно подключаться с пользователем root и паролем root (MYSQL_ROOT_PASSWORD).

Поработали, останавливаем:

docker kill mysql

Вот и всё. У вас есть полноценный древний MySQL и вам не пришлось даунгрейдить систему.

Успехов!