Bugün, Docker konteynerlerinde çalışan uygulamalar için yedekleme ve kurtarma stratejilerini keşfedeceğiz. Bu süreçte, Docker’ın sunduğu avantajları ve veritabanı yönetimi ile ilgili sıkça karşılaşılan zorlukları nasıl aşabileceğinizi öğreneceksiniz. Hazırsanız, başlayalım!
Docker Konteynerlerinin Yedeklenmesi Neden Önemlidir?
Bu yüzden, Docker konteynerlerinde çalışan uygulamalar için düzenli yedekleme yapmanız gereklidir. Hem geliştirici hem de sistem yöneticisi olarak, verilerinizi güvence altına almanın yollarını bilmelisiniz.
1. Docker Volume Kullanarak Yedekleme
```bash
docker volume create my_volume
```
Yukarıdaki komutla bir volume oluşturabilirsiniz. Bu volume, verilerinizi konteynerin dışına çıkararak korur. Veritabanı veya uygulama verisi gibi önemli dosyalarınızı bu volume’a yönlendirebilirsiniz.
2. Yedeklemeleri Otomatikleştirme
Bir cron job oluşturmak için aşağıdaki gibi bir Dockerfile kullanabilirsiniz:
```dockerfile
FROM ubuntu:20.04
RUN apt-get update && apt-get install -y cron
COPY backup.sh /backup.sh
RUN chmod +x /backup.sh
CMD cron && tail -f /var/log/cron.log
```
Bu Dockerfile, her gün belirli bir saatte `backup.sh` scriptini çalıştırarak verilerinizi yedekleyecek şekilde yapılandırılmıştır.
3. Docker Export ve Import Komutlarıyla Yedekleme
Bir konteyneri dışa aktarmak için şu komutu kullanabilirsiniz:
```bash
docker export container_name > backup.tar
```
Daha sonra bu dosyayı herhangi bir depolama alanına kaydedebilirsiniz. Geri yüklemek için ise şu komutu kullanabilirsiniz:
```bash
docker import backup.tar
```
Bu yöntem, tüm konteynerin tam bir kopyasını almanızı sağlar.
4. Docker Snapshotları ve Yedekleme
```bash
docker commit container_name snapshot_name
```
Bu komut, `container_name` konteynerinden bir snapshot alır ve `snapshot_name` ile kaydeder.
5. Yedeklenen Verilerin Bulut Ortamına Yedeklenmesi
AWS S3 veya Google Cloud Storage gibi servisler üzerinden yedekleme yapmak, verilerinizi dışarıda güvenli bir şekilde saklamanızı sağlar. Docker’ın CLI araçlarıyla bu bulut servislerine kolayca entegre olabilirsiniz.
```bash
aws s3 cp /path/to/backup s3://mybucket/backup/
```
Kurtarma Stratejileri
- Veritabanı Yedekleme ve Kurtarma: Yedeklenen veritabanı dosyalarınızı geri yükleyerek veritabanınızı eski haline getirebilirsiniz. SQL dump dosyalarını kullanarak geri yükleme işlemi oldukça yaygındır.
```bash
mysql -u user -p database_name < backup.sql
```
- Konteyner Yeniden Başlatma: Eğer tüm konteyneri geri yüklemek istiyorsanız, sadece export ve import komutlarıyla konteyneri yeniden oluşturabilirsiniz.
```bash
docker import backup.tar
docker run -d -p 80:80 backup_image
```
Sonuç
Unutmayın, verilerinizi düzenli olarak yedeklemek, sisteminizin güvenliğini ve sürekliliğini sağlamanın en temel adımlarından biridir. Docker’ın sunduğu güçlü araçlarla, verilerinizi güvende tutmak oldukça kolay!