Я уже рассматривал пример использования Docker для запуска Ruby on Rails.
Там мы собирали свой контейнер с нуля. Здесь ситуация примо противоположная: давайте рассмотрим, как использовать уже полностью готовый контейнер с максимальным комфортом для себя.
Предположим, для ковыряния со старым проектом нам понадобился старый 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 и вам не пришлось даунгрейдить систему.
Успехов!