Files
laboratori-cloud/labs/lab-04-storage/tutorial/01-docker-volumes.md
Luca Sacchi Ricciardi a021fe796b feat(lab-04): complete Phase 5 - Storage & S3 lab
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>
2026-04-03 15:25:46 +02:00

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

  1. Crea un volume:
docker volume create my-data
  1. Usa nel compose:
volumes:
  my-data:
    driver: local
services:
  app:
    volumes:
      - my-data:/app/data
  1. 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.