Volume Türleri
| Tür | Açıklama | Kullanım |
| Named Volume | Docker tarafından yönetilen | Production veriler |
| Bind Mount | Host dizini bağlama | Development, config |
| Anonymous Volume | İsimsiz geçici volume | Geçici cache |
| tmpfs | Bellek içi (RAM) | Hassas veriler |
Named Volume
# Volume oluştur
docker volume create mydata
# Volume listele
docker volume ls
# Volume detayları
docker volume inspect mydata
# Volume kullan
docker run -d -v mydata:/var/lib/mysql mysql
# Volume sil
docker volume rm mydata
# Kullanılmayan volume'ları temizle
docker volume prune
Bind Mount
# Mutlak yol ile
docker run -v /home/user/app:/var/www/html nginx
# Göreceli yol (docker compose)
services:
app:
volumes:
- ./src:/var/www/html
# Read-only
docker run -v /config:/etc/app:ro myapp
Compose'da Volume Tanımlama
version: '3.8'
services:
mysql:
image: mysql:8.0
volumes:
# Named volume
- mysql_data:/var/lib/mysql
# Bind mount
- ./init.sql:/docker-entrypoint-initdb.d/init.sql:ro
# Anonymous volume
- /var/lib/mysql/tmp
volumes:
mysql_data:
driver: local
driver_opts:
type: none
o: bind
device: /data/mysql
Volume Yedekleme
# Yedekleme
docker run --rm \
-v mysql_data:/source:ro \
-v $(pwd):/backup \
alpine tar cvf /backup/mysql_backup.tar /source
# Geri yükleme
docker run --rm \
-v mysql_data:/target \
-v $(pwd):/backup \
alpine sh -c "cd /target && tar xvf /backup/mysql_backup.tar --strip 1"
Volume Driver'lar
# NFS volume
docker volume create \
--driver local \
--opt type=nfs \
--opt o=addr=192.168.1.100,rw \
--opt device=:/shared \
nfs_volume