4.1 Основные методы бэкапа и восстановления данных
Если вы хотя бы раз в жизни теряли важные данные, вам не стоит объяснять, почему бэкапы важны. В этой лекции мы рассмотрим различные методы и инструменты для создания бэкапов и восстановления данных в Docker, включая тома и привязанные директории
Основные методы бэкапа и восстановления данных
- Бэкапы томов Docker
- Использование утилиты tar для бэкапов
- Бэкапы баз данных внутри контейнеров
- Восстановление данных из бэкапов
4.2 Бэкапы томов Docker
Тома Docker предоставляют удобный способ хранения данных вне контейнеров. Для создания бэкапов томов можно использовать различные подходы.
Пример использования команды docker run для бэкапа тома
Создание бэкапа тома
Создайте контейнер, монтирующий том, и используйте утилиту tar для создания архива данных:
docker run --rm -v my_volume:/data -v /path/to/backup:/backup busybox tar czf
/backup/my_volume_backup.tar.gz -C /data .
В этом примере содержимое тома my_volume архивируется в файл my_volume_backup.tar.gz, который сохраняется в директории /path/to/backup на хосте.
Пример восстановления тома из бэкапа
Восстановление данных в том
Создайте контейнер, монтирующий том и директорию с бэкапом, и используйте утилиту tar для извлечения данных:
docker run --rm -v my_volume:/data -v /path/to/backup:/backup busybox tar xzf
/backup/my_volume_backup.tar.gz -C /data
В этом примере данные из архива my_volume_backup.tar.gz извлекаются в том my_volume.
4.3 Использование утилиты tar для бэкапов
Утилита tar является мощным инструментом для создания бэкапов и восстановления данных. Она может быть использована как внутри контейнеров, так и на хостовой системе.
Пример создания бэкапа данных внутри контейнера
Запустите контейнер с нужными данными и создайте архив с помощью tar:
docker exec -t my_container tar czf /backup/my_container_backup.tar.gz -C /data .
В этом примере данные из директории /data внутри контейнера my_container архивируются в файлmy_container_backup.tar.gz.
Пример восстановления данных из архива
Запустите контейнер и используйте tar для извлечения данных из архива:
docker exec -t my_container tar xzf /backup/my_container_backup.tar.gz -C /data
4.4 Бэкапы баз данных внутри контейнеров
Для баз данных часто используются специализированные инструменты для бэкапов и восстановления.
Пример бэкапа базы данных PostgreSQL
Используйте утилиту pg_dump для создания бэкапа базы данных:
docker exec -t my_postgres_container pg_dump -U myuser mydb > /path/to/backup/mydb_backup.sql
В этом примере база данных mydb экспортируется в файл mydb_backup.sql.
Пример восстановления базы данных PostgreSQL
Используйте утилиту psql для восстановления базы данных из бэкапа:
cat /path/to/backup/mydb_backup.sql | docker exec -i my_postgres_container psql -U myuser mydb
4.5 Восстановление данных из бэкапов
Восстановление данных — это процесс извлечения данных из созданных ранее бэкапов.
Пример восстановления данных из бэкапа тома
Используйте команду docker run для извлечения данных в том:
docker run --rm -v my_volume:/data -v /path/to/backup:/backup busybox tar xzf
/backup/my_volume_backup.tar.gz -C /data
Пример восстановления базы данных MySQL
Используйте утилиту mysqldump для создания бэкапа базы данных:
docker exec my_mysql_container mysqldump -u myuser -p mypassword mydb >
/path/to/backup/mydb_backup.sql
Используйте утилиту mysql для восстановления базы данных:
cat /path/to/backup/mydb_backup.sql | docker exec -i my_mysql_container mysql -u myuser -p
mypassword mydb
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ