Docker Volumes Nedir? Örneklerle Docker Volume Kullanımı

Docker Volumes, konteyner içinde oluşturulan verilerin kalıcı olarak saklanmasını sağlayan ve konteynerlar arasında veri paylaşımını kolaylaştıran önemli bir Docker bileşenidir. Bir konteyner silindiğinde dosya sistemi de kaybolacağı için, verileri korumanın en güvenli yolu volume kullanmaktır.

Docker Volume Neden Kullanılır?

  • Konteyner silinse bile veriler korunur.
  • Birden fazla konteyner arasında dosya paylaşımı sağlar.
  • Yedekleme ve taşıma (migrate) işlemleri kolaydır.
  • Docker CLI ve API üzerinden kolay yönetilir.
  • Hem Linux hem Windows ortamında çalışır.
  • Veriler uzaktan depolanabilir ve şifrelenebilir.
  • Konteyner boyutunu artırmaz.

Nginx ile Docker Volume Örneği

docker pull nginx

1. Nginx İmajını İndirme ve Çalıştırma

docker pull nginx
docker run -d --name demoUygulama -p 8000:80 nginx

Tarayıcıda localhost:8000 adresine giderek Nginx varsayılan sayfasını görebilirsiniz.

docker pull nginx

2. Konteyner İçine Girerek Dosya Düzenleme

docker exec -it demoUygulama /bin/bash
docker pull nginx

Nginx'in HTML dizinine gidiyoruz:

cd /usr/share/nginx/html
docker pull nginx

Index dosyasını güncelleyelim:

echo "Merhaba Docker!" > index.html
docker pull nginx

3. Docker Volume Oluşturma

docker volume create volume_name
docker pull nginx

Tüm volume’leri listelemek için:

docker pull nginx
docker volume ls

Volume silmek için:

docker volume rm volume_name

4. Volume Kullanarak Konteyner Oluşturma

docker run -d \
--name demoUygulama2 \
--mount source=volumeExample,target=/usr/share/nginx/html \
-p 8000:80 nginx

Volume detaylarını görmek için:

docker volume inspect volumeExample

5. -v Parametresi ile Volume Kullanımı

docker run -d --name=demoUygulama1 \
-v volumeExample:/usr/share/nginx/html \
-p 8000:80 nginx

Konteyner silinse bile volume silinmez:

docker rm demoUygulama1
docker volume ls

Dockerfile ile Volume Tanımlama

FROM openjdk
VOLUME ["/data"]
ENTRYPOINT ["/bin/sh"]

Bu yapı, konteynerdeki /data dizininin otomatik olarak bir volume ile eşleştirilmesini sağlar.

Docker Compose ile Volume Kullanımı

version: '1'
services:
  webserver:
    build: .
    ports:
      - "800:80"
    volumes:
      - .:/usr/share/nginx/html
docker pull nginx

Nokta işareti (.) ilgili dizini temsil eder. Dilerseniz volume ismini burada belirtebilirsiniz.

Docker Volumes Avantajları

  • Kalıcı veri depolama sağlar.
  • Konteyner bağımsız çalışır.
  • Veri paylaşımını kolaylaştırır.
  • Yedekleme ve taşıma için uygundur.
  • Performanslı ve güvenlidir.
  • Konteyner boyutunu artırmaz.

Sonuç

Docker Volumes, veri sürekliliği sağlamak ve konteynerler arasında dosya paylaşımı yapmak için kritik öneme sahiptir. Bu içerikte Nginx örneği üzerinden volume nasıl oluşturulur, nasıl bağlanır ve Dockerfile ile Docker Compose içinde nasıl tanımlanır gibi konuları adım adım inceledik.

Docker ve diğer yazılım teknolojileri ile ilgili içerikler için bizi takip etmeye devam edin. İyi çalışmalar!

Beğendiysen bir çay ısmarlayabilirsin ☕

Bana çay ısmarla

Devops ile ilgili yorumlar

Yorum Paylaş

EMail Zorunlu alanlar * *