Phase Plan: - 05-PLAN.md: Combined execution plan for efficiency - 05-RESEARCH.md: Domain research on volumes and MinIO Test Scripts (4): - 01-volumes-test.sh: Volume persistence verification - 02-minio-test.sh: MinIO S3 API testing - 03-persistence-test.sh: Database persistence verification - 99-final-verification.sh: End-to-end verification Documentation (6 files): Tutorial: Docker volumes, MinIO S3 How-to: Manage volumes Reference: Volume syntax Explanation: Storage↔S3 parallels Infrastructure: - docker-compose.yml: MinIO S3 + PostgreSQL + test container - Named volumes: minio-data, db-data, test-data (INF-04 compliant) Key concepts: - Named volumes = EBS volumes - MinIO = S3 bucket (100% API compatible) - Data persistence across container lifecycle Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1.3 KiB
1.3 KiB
Tutorial 1: Docker Volumes - Persistenza dei Dati
Obiettivi
- Capire cosa sono i Docker Volumes
- Creare volumi named
- Montare volumi nei container
- Verificare la persistenza dei dati
Cos'è un Docker Volume?
Un volume Docker è:
- Storage persistente: I dati sopravvivono al container
- Managed: Docker gestisce il filesystem
- **Named volume: Puoi riferirti per nome
Parallelismo: Docker Volume = EBS Volume
| Docker | AWS EBS |
|---|---|
| docker volume create | aws ec2 create-volume |
| Named volume | Volume ID |
| Mount to container | Attach to instance |
| Data persists | Data persists independently |
Esercizio
- Crea un volume:
docker volume create my-data
- Usa nel compose:
volumes:
my-data:
driver: local
services:
app:
volumes:
- my-data:/app/data
- Verifica persistenza:
docker compose up -d
docker exec lab04-test sh -c "echo 'test' > /data/file.txt"
docker compose down
docker compose up -d
docker exec lab04-test cat /data/file.txt # Dato presente!
Comandi Utili
docker volume ls # Lista volumi
docker volume inspect <name> # Dettagli volume
docker volume rm <name> # Rimuovi volume
Conclusione
I volumi Docker permettono la persistenza dei dati, esattamente come gli EBS volumes in AWS.