4.1 Основні методи бекапу і відновлення даних
Якщо ти хоча б раз у житті втрачав важливі дані, тобі не треба пояснювати, чому бекапи важливі. У цій лекції ми розглянемо різні методи та інструменти для створення бекапів і відновлення даних у Docker, включаючи volume-и та прив’язані директорії.
Основні методи бекапу і відновлення даних
- Бекапи volume-ів 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
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ