Docker. Бэкап базы MySQL из контейнера

В предыдущей статье «Что такое Docker? Bash команды в контейнере» был разобран способ обращения к Docker контейнеру, политика запуска (рестарта) и выполнение простейших bash команд. В этой статье пойдём чуть дальше и сделаем дамп базы данных из контейнера, а так же загрузим его обратно.

Бэкап базы MySQL из Docker контейнера

Часто в контейнеры устанавливают MySQL. А как обычно принято с базами данных, бэкапов много не бывает! Попробуем сделать бэкап базы из докера и сохранить его в папку /root/ вне докер-контейнера. Для этого воспользуемся стандартной командой для бэкапа базы — mysqldump:

docker exec -it id_контейнера mysqldump -u root —password=root DATABASE > /root/mysqldump.sql

(необходимо заменить имя пользователя «root», пароль и название базы данных для сохранения «DATABASE» на необходимые значения). В результате выполнения этого кода, будет создан бэкап /root/mysqldump.sql вне docker контейнера. А чтоб загрузить сохранённый дамп обратно в базу выполним:

cat /root/mysqldump.sql | docker exec -i id_контейнера /usr/bin/mysql -u root —password=root DATABASE

Бэкап всех MySQL баз из Docker контейнера

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

docker exec -it id_контейнера mysqldump —all-databases —routines —triggers > /root/mysqldump.sql



2020-02-05T12:55:51
Интернет