Docker Depolama Nasıl Çalışır: Hacimler ve Bağlama Montajları | INTROSERV
EUR
european

EUR

usa

USD

Turkish Tr
Ex. VAT Ex. VAT 0%

Docker Depolama Nasıl Çalışır: Hacimler ve Bağlama Montajları

Giriş

Bu eğitimde, Docker depolamanın nasıl çalıştığını ve Docker Volumes ve Bind Mounts kullanarak verilerin nasıl kalıcı hale getirileceğini öğreniyorsunuz. Ayrıca, bu yaklaşımlar arasındaki temel farkları ve her birini üretimde ne zaman kullanmanız gerektiğini anlıyorsunuz. Bu, veri kaybını önlemenize ve güvenilir konteynerleştirilmiş sistemler tasarlamanıza yardımcı olur.

Ön Koşullar

  • Hedef kitle: Başlangıç seviyesindeki sistem yöneticileri
  • Tahmini süre: ~30 dakika
  • İşletim sistemi: Ubuntu 22.04+, Debian 12+, CentOS Stream veya Docker Desktop ile macOS gibi Docker desteği olan herhangi bir işletim sistemi
  • Yazılım: Docker 24.0.0 veya daha yeni sürüm
  • İzinler: Docker'a erişimi olan veya sudo ayrıcalıklarına sahip kullanıcı
  • Donanım: En az 2 GB RAM ve 10 GB boş disk alanı
  • Ağ: Konteyner görüntülerini çekmek için internet erişimi
  • Varsayılan bilgi: Temel komut satırı kullanımı ve konteynerlerin anlaşılması

Adım 1: Docker Depolamanın Nasıl Çalıştığını Anlamak

Docker konteynerleri katmanlı bir dosya sistemi kullanır. Her konteynerin, salt okunur görüntü katmanlarının üzerinde yazılabilir bir katmanı vardır.

Bir konteyner veri yazdığında ne olur

  1. Docker, görüntü katmanlarını salt okunur olarak depolar
  2. Bir konteyner başlattığınızda, Docker yazılabilir bir katman ekler
  3. Herhangi bir dosya değişikliği yalnızca bu yazılabilir katmanda gerçekleşir

Sonuç

Bir konteyneri sildiğinizde, yazılabilir katmandaki tüm veriler kaybolur. Bu, konteyner depolamanın varsayılan olarak geçici olduğu anlamına gelir.

Info

Bu davranış, durumsuz uygulamalar için faydalıdır ancak veritabanları veya kalıcı hizmetler için değildir.

Adım 2: Docker Volumes Oluşturma ve Kullanma

Docker Volumes, Docker tarafından oluşturulan ve sürdürülen yönetilen depolama konumlarıdır.

Bir hacim oluşturun

Aşağıdaki komutu çalıştırın:

docker volume create my_volume

Hacim adının döndüğünü görmelisiniz.

Bir konteynerde bir hacim kullanın

Aşağıdaki komutu çalıştırın:

docker run -d -v my_volume:/app/data --name volume_test busybox

Docker, hacmi konteynerin içinde /app/data konumuna monte eder.

Sonuç

/app/data konumuna yazılan veriler, konteyner kaldırılmış olsa bile kalıcıdır.

Hacimlerin temel özellikleri

  • Docker tarafından yönetilir
  • /var/lib/docker/volumes/ gibi Docker iç dizinlerinde depolanır
  • Yedeklemesi ve taşınması kolaydır
  • Host dosya sistemi yapısından izole edilmiştir

Tip

Veritabanları ve üretim iş yükleri için hacimleri kullanın.

Adım 3: Bind Mounts Oluşturma ve Kullanma

Bind mounts, host üzerindeki belirli bir dizini konteyner içindeki bir dizine bağlar.

Bir bind mount kullanın

Aşağıdaki komutu çalıştırın:

docker run -d -v /home/<YOUR_USERNAME>/data:/app/data --name bind_test busybox

Sonuç

Konteyner, host dizinine doğrudan erişir. Host dizinindeki herhangi bir değişiklik, konteyner içinde hemen görünür.

Bind mounts'un temel özellikleri

  • Host dosya sistemi yollarına bağlıdır
  • Hosttan doğrudan dosya düzenlemeye izin verir
  • Docker tarafından yönetilen bir izolasyon yoktur
  • Daha esnek ancak daha az taşınabilir

Info

Bind mounts, host ve konteyner arasında değişiklikleri hemen yansıtır.

Adım 4: Volumes ve Bind Mounts Karşılaştırması

Farkları anlamak, doğru seçeneği seçmenize yardımcı olur.

Docker Volumes

  • Docker tarafından yönetilir
  • Ortamlar arasında taşınabilir
  • Üretim kullanımı için daha güvenlidir
  • Yedeklemesi daha kolaydır
  • Host dosya sisteminden soyutlanmıştır

Bind Mounts

  • Host tarafından yönetilir
  • Belirli dosya sistemi yollarına bağlıdır
  • Geliştirme için kullanışlıdır
  • Doğrudan dosya erişimi sağlar
  • Yanlış yapılandırılırsa daha az güvenlidir

Adım 5: Üretimde Volumes ve Bind Mounts Arasında Seçim Yapma

Aşağıdaki yönergeleri kullanın.

Docker Volumes ne zaman kullanılmalı

  • MySQL veya PostgreSQL gibi veritabanları çalıştırırken
  • Kalıcı olması gereken uygulama verilerini depolarken
  • Üretim hizmetlerini dağıtırken
  • Sunucular arasında taşınabilirliğe ihtiyaç duyarken

Bind Mounts ne zaman kullanılmalı

  • Yerel geliştirme ortamları
  • Kod veya yapılandırma dosyalarını doğrudan düzenleme
  • Konteyner davranışını hata ayıklama
  • Geçici veya test kurulumları

Info

Önemli: Yanlış yapılandırılırsa bind mounts, hassas host dosyalarını konteynerlere açabilir. Yolları ve izinleri her zaman doğrulayın.

Doğrulama ve Test

Bir hacim ile bir test konteyneri oluşturun:

docker run -it -v my_volume:/data --name playground busybox

Konteyner içinde bir dosya oluşturun:

echo test > /data/file.txt

Konteynerden çıkın ve kaldırın:

docker rm -f playground

Aynı hacimle yeni bir konteyner başlatın:

docker run -it -v my_volume:/data --name playground busybox

Dosyayı kontrol edin:

cat /data/file.txt

Beklenen sonuç: Dosya hala mevcut, veri kalıcılığını doğruluyor.

Değişiklikleri Geri Alma

Kaynakları temizlemek için aşağıdaki komutları çalıştırın:

docker rm -f playground volume_test bind_test

docker volume rm my_volume

docker system prune -f

Info

Önemli: Hacimleri kaldırmak, depolanan tüm verileri kalıcı olarak siler.

Sorun Giderme

  • Sorun: Veri, konteyner yeniden başlatıldıktan sonra kayboluyor
    Neden: Hacim veya bind mount kullanılmadı
    Çözüm: Hacimler veya bind mounts kullanarak kalıcı depolama ekleyin
  • Sorun: İzin reddedildi hataları
    Neden: Host dizini izinleri uyumsuz
    Çözüm: İzinleri chmod veya chown kullanarak ayarlayın
  • Sorun: Hacim doğru şekilde monte edilmiyor
    Neden: Yanlış yol veya sözdizimi
    Çözüm: Montaj formatını ve yolları doğrulayın

Sonuç ve Sonraki Adımlar

Docker depolamanın nasıl çalıştığını ve verilerin hacimler ve bind mounts kullanarak nasıl kalıcı hale getirileceğini öğrendiniz. Ayrıca, her yaklaşımı üretimde ne zaman kullanmanız gerektiğini anladınız. Sonraki adımda, çoklu konteyner uygulamalarını yönetmek ve depolamayı daha yapılandırılmış bir şekilde tanımlamak için Docker Compose'u keşfedin.

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA