JavaRush /Курси /Модуль 2: Fullstack /Бекапи і відновлення даних

Бекапи і відновлення даних

Модуль 2: Fullstack
Рівень 16 , Лекція 3
Відкрита

4.1 Основні методи бекапу і відновлення даних

Якщо ти хоча б раз у житті втрачав важливі дані, тобі не треба пояснювати, чому бекапи важливі. У цій лекції ми розглянемо різні методи та інструменти для створення бекапів і відновлення даних у Docker, включаючи volume-и та прив’язані директорії.

Основні методи бекапу і відновлення даних

  1. Бекапи volume-ів Docker
  2. Використання утиліти tar для бекапів
  3. Бекапи баз даних всередині контейнерів
  4. Відновлення даних із бекапів

4.2 Бекапи томів Docker

Томи Docker надають зручний спосіб зберігання даних поза контейнерами. Для створення бекапів томів можна використовувати різні підходи.

Приклад використання команди docker run для бекапу тому

Створення бекапу тому

Створіть контейнер, що монтує том, і використовуйте утиліту tar для створення архіву даних:

Terminal

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 для розпакування даних:

Terminal

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:

Terminal

docker exec -t my_container tar czf /backup/my_container_backup.tar.gz -C /data .

У цьому прикладі дані з директорії /data всередині контейнера my_container архівуються у файлmy_container_backup.tar.gz.

Приклад відновлення даних з архіву

Запусти контейнер і використовуй tar для вилучення даних з архіву:

Terminal

docker exec -t my_container tar xzf /backup/my_container_backup.tar.gz -C /data

4.4 Бекапи баз даних всередині контейнерів

Для баз даних часто використовуються спеціалізовані інструменти для бекапів та відновлення.

Приклад бекапу бази даних PostgreSQL

Використовуйте утиліту pg_dump для створення бекапу бази даних:

Terminal

docker exec -t my_postgres_container pg_dump -U myuser mydb > /path/to/backup/mydb_backup.sql

У цьому прикладі база даних mydb експортується у файл mydb_backup.sql.

Приклад відновлення бази даних PostgreSQL

Використовуйте утиліту psql для відновлення бази даних із бекапу:

Terminal

cat /path/to/backup/mydb_backup.sql | docker exec -i my_postgres_container psql -U myuser mydb

4.5 Відновлення даних із бекапів

Відновлення даних — це процес отримання даних із створених раніше бекапів.

Приклад відновлення даних із бекапу тому

Використовуйте команду docker run для витягування даних у том:

Terminal

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 для створення бекапу бази даних:

Terminal

docker exec my_mysql_container mysqldump -u myuser -p mypassword mydb >
/path/to/backup/mydb_backup.sql

Використовуйте утиліту mysql для відновлення бази даних:

Terminal

cat /path/to/backup/mydb_backup.sql | docker exec -i my_mysql_container mysql -u myuser -p
mypassword mydb
Коментарі (1)
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ
Марк Рівень 50
17 травня 2025
Відновлення даних у томі - завдання не містить точний опис шляхів, які потрібно вказати для перевірки завдання. Опис підказки про помилку не інформативний.