Installare Docker e gestire container su Debian 12
Guida pratica per installare Docker, creare Dockerfile e orchestrare servizi con Docker Compose.
1. Installazione Docker
apt install -y ca-certificates curl gnupg
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian bookworm stable" > /etc/apt/sources.list.d/docker.list
apt update && apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
2. Verifica
docker run hello-world
docker compose version
3. Esempio: Nginx + MySQL con Docker Compose
mkdir -p ~/myapp && cd ~/myapp
cat > docker-compose.yml <<EOF
services:
web:
image: nginx:alpine
ports:
- "8080:80"
volumes:
- ./html:/usr/share/nginx/html:ro
depends_on:
- db
db:
image: mariadb:11
environment:
MYSQL_ROOT_PASSWORD: password123
MYSQL_DATABASE: myapp
volumes:
- db_data:/var/lib/mysql
volumes:
db_data:
EOF
mkdir html && echo "<h1>Funziona!</h1>" > html/index.html
docker compose up -d
4. Comandi essenziali
docker compose ps # Stato container
docker compose logs -f # Log in tempo reale
docker compose down # Ferma e rimuovi
docker compose pull # Aggiorna immagini
docker system prune -af # Pulizia spazio
5. Dockerfile personalizzato
cat > Dockerfile <<EOF
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 5000
CMD ["python", "app.py"]
EOF
docker build -t myapp:latest .
docker run -d -p 5000:5000 myapp:latest
6. Volumi e persistenza
# Backup volume
docker run --rm -v db_data:/data -v $(pwd):/backup alpine tar czf /backup/db_backup.tar.gz /data
# Restore
docker run --rm -v db_data:/data -v $(pwd):/backup alpine tar xzf /backup/db_backup.tar.gz -C /
Risultato: Docker e Docker Compose operativi per deploy rapido di qualsiasi servizio containerizzato.