Blogchevron_rightSunucu Yönetimichevron_rightDocker Named Volumes ile Kalıcı Veri Saklama Rehberi

Docker Named Volumes ile Kalıcı Veri Saklama Rehberi

S
Serversium
calendar_today29 Haziran 2026
schedule5 dk okuma
Docker Named Volumes ile Kalıcı Veri Saklama Rehberi

Docker Konteynerlarında Kalıcı Veri Saklama: Named Volumes Nedir?

Docker konteynerları, varsayılan olarak yazılan tüm verileri konteyner silindiğinde kaybeder. Ancak gerçek dünya uygulamalarında verilerin kalıcı olması gerekir. Docker'ın Named Volumes özelliği, konteyner yaşam döngüsünden bağımsız olarak verilerinizi güvenli bir şekilde saklamanızı sağlar. Araştırmalara göre, kurumsal Docker kullanıclarının %78'i kalıcı depolama çözümlerine ihtiyaç duyar.

Named volumes, Docker tarafından yönetilen özel bir dizinde fiziksel olarak saklanan ve birden fazla konteyner tarafından paylaşılabilen veri birimleridir. Bu yaklaşım, bind mount'lardan farklı olarak tamamen Docker engine tarafından yönetilir ve taşınabilirlik sağlar.

Named Volumes vs Bind Mounts: Temel Farklar

Docker'da iki tür depolama mekanizması bulunur: Named Volumes ve Bind Mounts. Hangisini kullanacağınızı anlamak için temel farkları bilmek önemlidir.

Özellik Named Volumes Bind Mounts
Yönetim Docker engine tarafından yönetilir Kullanıcı tarafından yönetilir
Taşınabilirlik Docker host'tan bağımsız çalışır Belirli host yoluna bağlıdır
Kullanım Kolaylığı Otomatik oluşturma ve yedekleme Manuel path yönetimi gerekir
Güvenlik Docker izolasyonunda saklanır Host dosya sistemine doğrudan erişim

Named Volumes Oluşturma ve Kullanma

Docker'da named volume oluşturmak oldukça basittir. İki temel yöntem bulunur: docker volume create komutu ile önceden oluşturma veya docker-compose dosyasında otomatik oluşturma.

Docker Volume Create Komutu

Terminalinizde aşağıdaki komutu çalıştırarak bir named volume oluşturabilirsiniz:

docker volume create myapp_data

Bu komut, Docker'ın varsayılan depolama konumunda myapp_data adlı bir volume oluşturur. Volume'ları listelemek için docker volume ls komutunu kullanabilirsiniz.

Docker Run ile Named Volume Kullanımı

Oluşturduğunuz volume'yi bir konteynere bağlamak için -v veya --mount flag'ini kullanın:

docker run -v myapp_data:/app/data nginx:latest

Bu komut, myapp_data volume'sunu konteynerin /app/data dizinine bağlar. Not: Nginx 502 hatası gibi sunucu hataları yaşamamak için volume path'lerinin doğru olduğundan emin olunmalıdır.

Docker Compose ile Named Volumes

Docker Compose kullanıyorsanız, volume tanımlamak çok daha kolaydır:

version: '3.8'
services:
  postgres:
    image: postgres:15
    volumes:
      - pgdata:/var/lib/postgresql/data
    environment:
      POSTGRES_PASSWORD: securepassword

volumes:
  pgdata:

Bu yapılandırmada, pgdata volume'su otomatik olarak oluşturulur ve PostgreSQL verileri kalıcı olarak saklanır. Büyük veritabanı aktarımları için bu yöntem kritik öneme sahiptir.

Named Volumes'ın Avantajları

Named volumes kullanmanın birçok teknik avantajı vardır. İşte en önemlileri:

  1. Veri Kalıcılığı: Konteyner silinse veya yeniden oluşturulsa bile veriler korunur.
  2. Paylaşımlı Erişim: Birden fazla konteyner aynı volume'ye erişebilir.
  3. Yedekleme Kolaylığı: docker run --rm -v myapp_data:/data -v $(pwd):/backup alpine tar cvf /backup/backup.tar /data komutu ile kolayca yedek alınabilir.
  4. Performans: Bind mount'lara göre daha iyi I/O performansı sağlar.
  5. Host Bağımsızlık: Volume verileri Docker tarafından yönetilen özel bir alanda saklandığından, host dosya sistemi değişikliklerinden etkilenmez.

Named Volumes Yönetimi

Volume İnceleme

Volume içeriğini incelemek ve metadata bilgilerine ulaşmak için:

docker volume inspect myapp_data

Bu komut, volume'nün mountpoint, oluşturulma tarihi ve driver bilgilerini gösterir.

Volume Temizleme

Kullanılmayan volume'leri temizlemek için:

docker volume prune

Uyarı: Bu komut, hiçbir konteyner tarafından kullanılmayan tüm volume'leri siler. Önemli verilerinizi yedeklediğinizden emin olun.

Volume Silme

Belirli bir volume'yu manuel olarak silmek için:

docker volume rm myapp_data

Volume'nün hiçbir konteyner tarafından kullanılmadığından emin olun, aksi takdirde silme işlemi başarısız olur.

Gerçek Dünya Kullanım Senaryoları

Veritabanı Uygulamaları

MySQL, PostgreSQL, MongoDB gibi veritabanı konteynerlerinde veri kalıcılığı için named volumes şiddetle önerilir. Örneğin, bir MySQL konteyneri için:

docker run -d \
  --name mysql_db \
  -e MYSQL_ROOT_PASSWORD=password \
  -v mysql_data:/var/lib/mysql \
  mysql:8.0

RAID yapılandırmaları gibi yedekleme stratejileri, production ortamlarında veri güvenliği için kritiktir.

E-ticaret Uygulamaları

E-ticaret sitelerinde ürün resimleri, sipariş verileri ve kullanıcı dosyaları kalıcı depolama gerektirir. Araştırmalar, e-ticaret sitelerinde 1 saniyelik gecikmenin %7 ciro kaybına neden olabileceğini göstermektedir. Bu nedenle, doğru storage yapılandırması performans için kritiktir.

CI/CD Pipeline'ları

Jenkins veya GitLab CI gibi araçlarda build artifact'leri ve cache verileri için named volumes kullanılabilir. Bu, build sürelerini önemli ölçüde kısaltır.

En İyi Uygulamalar ve İpuçları

  1. Anlamlı İsimlendirme: Volume isimlerini proje veya amaçlarına göre adlandırın (ör: app_uploads, db_persistent).
  2. Driver Yapılandırması: Özel storage driver'ları kullanarak NFS, CIFS gibi ağ depolama çözümlerini entegre edebilirsiniz.
  3. Backup Stratejisi: Düzenli yedekleme rutinleri oluşturun ve automation kullanın.
  4. RBAC Kontrolü: Production ortamlarında volume erişim kontrolü uygulayın.
  5. Monitoring: Disk kullanımını izleyin ve capacity planning yapın.

Ansible ile sunucu yapılandırma otomasyonu kullanarak volume yönetimini de otomatize edebilirsiniz.

Sonuç

Docker konteynerlarında kalıcı veri saklama, modern uygulama geliştirmenin temel gereksinimlerinden biridir. Named volumes, veri kalıcılığı, taşınabilirlik ve yönetim kolaylığı sunarak production ortamlarında güvenilir bir çözüm sağlar. Bind mount'ların sunduğu esneklik bazı durumlarda tercih edilebilir olsa da, çoğu senaryoda named volumes daha iyi bir seçenektir.

Uygulamalarınızda doğru volume stratejisini belirlemek, veri güvenliği ve sistem performansı açısından kritik öneme sahiptir. Özellikle hosting altyapısı seçiminde depolama çözümlerinin kalitesi, uygulama güvenilirliğini doğrudan etkiler.

Docker volume'leri hakkında daha fazla bilgi için blog sayfamızı ziyaret edebilir veya iletişim ekibimizle görüşebilirsiniz.

library_booksBenzer İçerikler

Cloud Sunucu Nedir? Avantajları ve Detaylı Rehber
Sunucu Yönetimi
calendar_today5 Nisan 2026
schedule5 dk

Cloud Sunucu Nedir? Avantajları ve Detaylı Rehber

Cloud sunucular, dinamik kaynak dağıtımıyla işletmelerin kesintisiz büyümesini sağlar. Avantajlardan karşılaştırmalara tüm detaylar bu rehberde yer alıyor.

S
Serversiumarrow_forward
Linux vs Windows Sunucu: Hangisi Projeye Uygun?
Sunucu Yönetimi
calendar_today6 Nisan 2026
schedule5 dk

Linux vs Windows Sunucu: Hangisi Projeye Uygun?

Linux ve Windows Sunucu arasındaki teknik farkları, maliyet avantajlarını ve proje uyumluluğunu detaylı olarak karşılaştırıyoruz. Yazılım stack'inize en uygun işletim sistemini seçmek için kapsamlı rehberimizle doğru altyapı kararını verin.

S
Serversiumarrow_forward
Plesk Kurulumu - Ubuntu 24 Üzerinde Adım Adım Rehber
Sunucu Yönetimi
calendar_today16 Nisan 2026
schedule5 dk

Plesk Kurulumu - Ubuntu 24 Üzerinde Adım Adım Rehber

Ubuntu 24 üzerinde Plesk kurulumunu adım adım öğrenin. Bu rehberde sistem gereksinimleri, kurulum adımları ve temel yapılandırma ayarlarını bulabilirsiniz.

S
Serversiumarrow_forward