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