Docker Nedir?
Docker, uygulamaların sanal konteynerlerde çalıştırılmasını sağlayan açık kaynaklı bir platformdur. Konteynerler, uygulamaların ve bağımlılıklarının bir arada taşınmasını ve çalıştırılmasını sağlar. Docker, uygulama geliştirme ve dağıtım süreçlerini hızlandırmak amacıyla mikro hizmet mimarisi ile uyumlu bir yapı sunar. Uygulamalar konteynerler içinde çalışırken, veri hacimleri (volumes) verilerin kalıcılığını sağlamak üzere kullanılır.
Docker Volume Nedir?
Docker volume, konteynerler arasında veri paylaşımını sağlamak amacıyla kullanılan veri saklama birimidir. Volume’lar, verilerin kalıcı olması için tasarlanmıştır. Böylece konteynerler silindiğinde dahi veriler korunur. Volume’lar, konteynerlerin dosya sistemlerinin dışında tutulur, dolayısıyla bu yapı, verilerin yönetimi ve yedeklenmesi açısından pek çok avantaj sunar.
Neden Docker Volume Kullanılır?
Docker volume kullanmanın birçok avantajı vardır. Bunların içerisinde:
– Veri Kalıcılığı: Konteynerler silindiğinde volume’lar kalıcıdır. Bu özellik, veri kaybını önler ve uygulama güncellemeleri sırasında veri sağlığı korur.
– Paylaşım: Birden fazla konteynerin aynı veriye erişmesini sağlamak amacıyla volume’lar kullanılabilir. Bu, veri paylaşımını kolaylaştırır.
– Performans: Volume’lar, konteynerin yerel dosya sistemine göre daha iyi performans sunabilir. Örneğin, host dosya sistemi üzerinde okuma yazma işlemleri volume ile daha hızlı gerçekleştirilebilir.
– Yönetim Kolaylığı: Volume’lar, Docker CLI veya Docker API kullanılarak kolaylıkla yönetilebilir.
Docker Volume Oluşturma
Docker volume oluşturmak için `docker volume create` komutu kullanılır. Bu komut, yeni bir volume oluşturmak için gerekli olan temel bir yapı sağlar. Komut çalıştırıldığında, sistem yeni bir volume oluşturacak ve bu volume kullanıma hazır hale gelecektir.
Komut Kullanımı
Docker volume oluşturmak için aşağıdaki komut yapısı kullanılır:
“`bash
docker volume create [OPTIONS] VOLUME_NAME
“`
Burada `VOLUME_NAME`, oluşturulacak volume için belirli bir isimdir ve isteğe bağlı olarak verilebilir. Eğer isim verilmezse, Docker otomatik olarak bir isim oluşturur.
Örnek Kullanım
Yeni bir volume oluşturmak için örnek bir kullanım aşağıdaki gibidir:
“`bash
docker volume create my_volume
“`
Bu komut, adı “my_volume” olan bir Docker volume oluşturur. Eğer volume oluşturulduktan sonra detaylarını incelemek istenirse, aşağıdaki komut kullanılabilir:
“`bash
docker volume inspect my_volume
“`
Bu komut, oluşturulan volume hakkında bilgi vererek, mount point, driver, ve diğer meta veriler hakkında bilgi sağlar.
Volume Oluşturma İhtiyaçları ve Seçenekleri
Docker volume oluşturulurken çeşitli seçenekler kullanılabilir. Bu seçenekler, volume’nin özelliklerini ve davranışlarını belirlemeye yardımcı olur. Örneğin, `–driver` seçeneği ile kullanılacak driver belirlenebilir. Bu, farklı depolama sürücüleri ile uyumlu volume’lar oluşturmak için önemlidir.
Örnek Seçenek Kullanımı
Aşağıdaki komut, “local” sürücüdür. Bu varsayılan ayar, host üzerinde bulunan dosya sistemini kullanan volume oluşturmaktadır:
“`bash
docker volume create –driver local my_local_volume
“`
Docker Volume Silme
Oluşturulan volume’lar silinebilir. Volume silmek için `docker volume rm` komutu kullanılabilir. Bu işlem, volume’nin hangi konteynerle ilişkili olduğuna bağlı olarak dikkatli bir şekilde yapılmalıdır; çünkü ilişkili konteyner silinmeden volume silinemez.
Volume’ların Kullanım Alanları
Docker volume’lar, yaygın olarak veri tabanları, uygulama logları, kullanıcı dosyaları gibi kalıcı veri saklamaya uygun yapılar için kullanılır. Özellikle veri tabanı konteynerleri için volume kullanımı, veri kaybını önlemek ve uygulama güncellemeleri sırasında veri tutarlılığını sağlamak için önemlidir.
Sonuç
Docker volume, konteynerlerin veri yönetimini kolaylaştıran ve veri kalıcılığını güvence altına alan önemli bir bileşendir. `docker volume create` komutu, bu hacimleri oluşturmak için basit ve etkili bir yöntem sunarak, geliştiricilere ve sistem yöneticilerine önemli avantajlar sağlamaktadır. Volume’ların sağladığı veri paylaşım ve kalıcılık özellikleri, modern uygulama geliştirme süreçlerinin ayrılmaz bir parçasıdır.


