Сейчас рассмотрим как же можно сделать дамп базы из такого контейнера и загрузить его обратно.
Создание дампа базы из контейнера
Для создания бэкапа базы данных, которая находится в контейнере, необходимо выполнить команду "mysqldump" внутри него. Для этого используется следующая команда:docker exec -it id_контейнера mysqldump -u root --password=pass DB > /дамп.sql
Перед выполнением этой команды в ней необходимо заменить "id_контейнера" на нужный id (его можно узнать из вывода списка контенйеров командой "docker ps -a"). Также необходимо указать нужный путь и название файла дампа вместо
/дамп.sql
, куда будет сохранена информация из базы (вне контейнера). И вставить нужного пользователя вместо "root", пароль вместо "pass" и название базы вместо "DB".
Если требуется сделать бэкап не только одной базы, а всех баз в MySQL вместе с индексами и триггерами, то можно выполнить команду:
docker exec -it id_контейнера mysqldump --all-databases --routines --triggers > /дамп.sql
Восстановление дампа в базу внутри контейнера
Чтоб загрузить сохранённый дамп обратно в базу, необходимо выполнить команду:cat /дамп.sql | docker exec -i id_контейнера /usr/bin/mysql -u root --password=pass DB
Суть в том, что файл дампа читается с помощью команды "cat", а затем всё передаётся в базу внутри контейнера. В этой команде, как и в предыдущем примере, необходимо вставить нужные значения вместо "id_контейнера", имени пользователя "root", пароля "pass" и названия базы данных "DB".