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
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.
2. Konteyner İçine Girerek Dosya Düzenleme
docker exec -it demoUygulama /bin/bash
Nginx'in HTML dizinine gidiyoruz:
cd /usr/share/nginx/html
Index dosyasını güncelleyelim:
echo "Merhaba Docker!" > index.html
3. Docker Volume Oluşturma
docker volume create volume_name
Tüm volume’leri listelemek için:
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
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!