Comandi Docker Fondamentali
| Comando | Descrizione |
|---|---|
docker start <name> | Avvia un container |
docker stop <name> | Ferma un container |
docker restart <name> | Riavvia |
docker ps | Container attivi |
docker ps -a | Tutti i container (anche fermi) |
docker pull <image> | Aggiorna l'immagine |
docker logs <name> | Mostra i log |
docker logs -f <name> | Log in tempo reale |
docker exec -it <name> bash | Apri shell nel container |
docker rm <name> | Rimuovi container |
docker rmi <image> | Rimuovi immagine |
docker system prune | Pulizia sistema |
docker system prune -a | Pulizia totale (incluse immagini) |
Docker Compose – Orchestrare lo Stack
Docker Compose permette di gestire applicazioni multi-container tramite un unico file YAML. Un singolo comando avvia o ferma l'intero stack.
# Avvia lo stack (in background)
docker-compose up -d
# Ferma e rimuovi i container
docker-compose down
# Ferma + elimina i volumi (ATTENZIONE!)
docker-compose down -v
# Ricostruisci e riavvia
docker-compose up -d --build
# Aggiorna
docker-compose pull && docker-compose up -d
# Log in tempo reale
docker-compose logs -f
# Riavvia un singolo servizio
docker-compose restart nextcloud-lisorect
# Pulizia dati inutilizzati
docker system prune -aEsempio: compose.yaml (Stack Nextcloud)
services:
db:
image: mariadb:10.11
container_name: nextcloud-db
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: ${MYSQL_DATABASE}
MYSQL_USER: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
volumes:
- /volume1/docker/nextcloud_db_data:/var/lib/mysql
redis:
image: redis:7-alpine
container_name: nextcloud-redis
restart: unless-stopped
volumes:
- /volume1/docker/nextcloud_redis_data:/data
nextcloud-lisorect:
image: nextcloud:latest
container_name: nextcloud-lisorect
depends_on: [db, redis]
restart: unless-stopped
ports:
- "3001:80"
environment:
MYSQL_HOST: nextcloud-db
MYSQL_DATABASE: ${MYSQL_DATABASE}
MYSQL_USER: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
REDIS_HOST: nextcloud-redis
volumes:
- /volume1/docker/nextcloud_config:/var/www/html/config
- /volume1/docker/nextcloud_data:/var/www/html/data