4.1 Məlumatların bəkap və bərpasının əsas üsulları
Bəkaplar və məlumatların bərpası, Docker-də məlumatların idarə olunmasının kritik vacib aspektlərindəndir. Onlar məlumatların itirilməsindən qoruyur və problem yaranarsa, onları tez bir zamanda bərpa etməyə imkan verir. Bu mühazirədə biz Docker-də məlumatların bəkapını yaratmaq və bərpa etmək üçün müxtəlif üsulları və alətləri müzakirə edəcəyik, o cümlədən volume-lər və bağlanmış direktoriyalar.
Məlumatların bəkap və bərpasının əsas üsulları
- Docker volume-lərinin bəkapı
- Bəkap üçün tar utilitinin istifadəsi
- Konteynerlər daxilində verilənlər bazalarının bəkapı
- Bəkaplardan məlumatların bərpası
4.2 Docker həcmlərinin bəkapı
Docker həcmləri məlumatları konteynerlərdən kənarda saxlamaq üçün rahat bir üsuldur. Həcm bəkaplarını yaratmaq üçün müxtəlif yanaşmalar tətbiq etmək olar.
Həcm bəkapı üçün docker run komandasının istifadə nümunəsi
Həcm bəkapının yaradılması
Həcmi montaj edən və tar utilitindən istifadə edərək məlumat arxivi yaradan bir konteyner yaradın:
docker run --rm -v my_volume:/data -v /path/to/backup:/backup busybox tar czf
/backup/my_volume_backup.tar.gz -C /data .
Bu nümunədə my_volume
həcmindəki məlumatlar my_volume_backup.tar.gz
faylına arxivlənir, və bu fayl host üzərindəki /path/to/backup
direktoriyasına saxlanılır.
Bəkapdan həcmin bərpası nümunəsi
Məlumatların həcmə bərpası
Həcmi və bəkapın yerləşdiyi direktoriyanı montaj edən bir konteyner yaradın və məlumatları ekstraksiya etmək üçün tar
utilitindən istifadə edin:
docker run --rm -v my_volume:/data -v /path/to/backup:/backup busybox tar xzf
/backup/my_volume_backup.tar.gz -C /data
Bu nümunədə my_volume_backup.tar.gz
arxivindən məlumatlar my_volume
həcminə ekstraksiya edilir.
4.3 tar
utilitindən backup üçün istifadə
tar
utiliti backup yaratmaq və məlumatları bərpa etmək üçün güclü bir alətdir. Bu, həm konteynerlərdə, həm də host sistemində istifadə edilə bilər.
Konteyner daxilində məlumat backup-nun yaradılması nümunəsi
Lazımi məlumatlarla konteyneri işə salın və tar
vasitəsilə bir arxiv yaradın:
docker exec -t my_container tar czf /backup/my_container_backup.tar.gz -C /data .
Bu nümunədə konteynerin my_container
içindəki /data
direktoriyasından olan məlumatlar my_container_backup.tar.gz
faylına arxiv edilir.
Arxivdən məlumatların bərpası nümunəsi
Konteyneri işə salın və arxivdən məlumat çıxarmaq üçün tar istifadə edin:
docker exec -t my_container tar xzf /backup/my_container_backup.tar.gz -C /data
4.4 Konteynerlərdə verilənlər bazasının bəklapları
Verilənlər bazaları üçün tez-tez bəklap və bərpa üçün ixtisaslaşdırılmış alətlər istifadə olunur.
PostgreSQL verilənlər bazasının bəklap nümunəsi
Verilənlər bazasının bəklapını yaratmaq üçün pg_dump
utilitindən istifadə edin:
docker exec -t my_postgres_container pg_dump -U myuser mydb > /path/to/backup/mydb_backup.sql
Bu nümunədə mydb
verilənlər bazası mydb_backup.sql
faylına ixrac olunur.
PostgreSQL verilənlər bazasının bərpa nümunəsi
Backupdan verilənlər bazasını bərpa etmək üçün psql
utilitindən istifadə edin:
cat /path/to/backup/mydb_backup.sql | docker exec -i my_postgres_container psql -U myuser mydb
4.5 Backup-dan məlumatların bərpası
Məlumatların bərpası — əvvəllər yaradılmış backup-lardan məlumatların çıxarılması prosesidir.
Volume backup-dan məlumatların bərpası nümunəsi
Volume-dan məlumatların çıxarılması üçün docker run
komandasını istifadə edin:
docker run --rm -v my_volume:/data -v /path/to/backup:/backup busybox tar xzf
/backup/my_volume_backup.tar.gz -C /data
MySQL verilənlər bazasından backup bərpası nümunəsi
Verilənlər bazasından backup yaratmaq üçün mysqldump
utilitini istifadə edin:
docker exec my_mysql_container mysqldump -u myuser -p mypassword mydb >
/path/to/backup/mydb_backup.sql
Verilənlər bazasını bərpa etmək üçün mysql utilitini istifadə edin:
cat /path/to/backup/mydb_backup.sql | docker exec -i my_mysql_container mysql -u myuser -p
mypassword mydb
4.6 Praktik tətbiq nümunələri
Nümunə 1: Skriptlər vasitəsilə backup-ların avtomatlaşdırılması
Backup-ları avtomatik yaratmaq və saxlamaq üçün bir skript yaradın.
#!/bin/bash
# Həcmdən backup yaratmaq
docker run --rm -v my_volume:/data -v /path/to/backup:/backup busybox tar czf /backup/my_volume_backup_$(date +%F).tar.gz -C /data .
# Köhnə backup-ların təmizlənməsi (7 gündən artıq)
find /path/to/backup -type f -name "*.tar.gz" -mtime +7 -exec rm {} \;
Nümunə 2: Çatışmazlıqdan sonra məlumatların bərpası
Çatışmazlıqdan sonra məlumatları bərpa etmək üçün backup-lardan istifadə edin.
# Container-in dayandırılması
docker stop my_container
# Köhnə məlumatların silinməsi
docker volume rm my_volume
# Məlumatların backup-dan bərpası
docker run --rm -v my_volume:/data -v /path/to/backup:/backup busybox tar xzf /backup/my_volume_backup_latest.tar.gz -C /data
# Container-in yenidən işə salınması
docker start my_container
GO TO FULL VERSION