Comandi Docker completi e workflow per la containerizzazione su tutte le piattaforme.
Comandi Base
| Comando | Descrizione |
|---|
docker --version | Mostra versione Docker |
docker info | Visualizza informazioni di sistema |
docker help | Mostra l’aiuto per i comandi Docker |
docker images | Elenca tutte le immagini |
docker ps | Elenca container in esecuzione |
docker ps -a | Elenca tutti i container (in esecuzione e fermati) |
docker pull <image> | Esegui il pull di un’immagine dal registry |
docker run <image> | Esegui un container dall’immagine |
docker stop <container> | Fermare un container in esecuzione |
docker start <container> | Avvia un container fermato |
docker restart <container> | Riavvia un container |
docker rm <container> | Rimuovi un container |
docker rmi <image> | Rimuovi un’immagine |
Gestione Container
| Comando | Descrizione |
|---|
docker run -d <image> | Esegui container in modalità detached |
docker run -it <image> | Esegui container in modo interattivo |
docker run -p 8080:80 <image> | Mappa la porta 8080 alla porta del container 80 |
docker run -v /host:/container <image> | Monta volume |
docker run --name <name> <image> | Esegui container con nome personalizzato |
docker exec -it <container> bash | Esegui bash nel container in esecuzione |
docker logs <container> | Visualizza log del container |
docker logs -f <container> | Segui i log dei container |
docker inspect <container> | Ispeziona dettagli container |
docker stats | Mostra utilizzo risorse del container |
docker top <container> | Mostra processi in esecuzione nel container |
Gestione Immagini
| Comando | Descrizione |
|---|
docker build -t <name> . | Costruisci immagine da Dockerfile |
docker build -t <name>:<tag> . | Costruisci immagine con tag |
docker tag <image> <new-name> | Taggare un’immagine |
docker push <image> | Esegui push dell’immagine nel registry |
docker save <image> > file.tar | Salva immagine in file tar |
docker load < file.tar | Carica immagine da file tar |
docker history <image> | Mostra cronologia immagini |
docker search <term> | Cerca immagini nel registry |
Docker Compose
| Comando | Descrizione |
|---|
docker-compose up | Avvia i servizi definiti nel file compose |
docker-compose up -d | Avvia servizi in modalità detached |
docker-compose down | Ferma e rimuovi container |
docker-compose build | Costruire o ricostruire servizi |
docker-compose logs | Visualizza log per tutti i servizi |
docker-compose ps | Elencare container |
docker-compose exec <service> bash | Esegui comando nel servizio |
docker-compose pull | Scarica le ultime immagini |
docker-compose restart | Riavvia servizi |
Gestione Rete
| Comando | Descrizione |
|---|
docker network ls | Elenco reti |
docker network create <name> | Creare una rete |
docker network rm <name> | Rimuovi una rete |
docker network inspect <name> | Ispeziona dettagli di rete |
docker run --network <name> <image> | Esegui container su rete specifica |
Gestione Volume
| Comando | Descrizione |
|---|
docker volume ls | Elenca volumi |
docker volume create <name> | Crea un volume |
docker volume rm <name> | Rimuovi un volume |
docker volume inspect <name> | Ispeziona dettagli volume |
docker volume prune | Rimuovi volumi non utilizzati |
Workflow Comuni
Workflow di Sviluppo
# Build and run application
docker build -t myapp .
docker run -p 3000:3000 myapp
# Development with volume mounting
docker run -p 3000:3000 -v $(pwd):/app myapp
# Using Docker Compose for development
docker-compose up --build
Distribuzione in Produzione
# Build production image
docker build -t myapp:prod .
# Tag for registry
docker tag myapp:prod registry.com/myapp:latest
# Push to registry
docker push registry.com/myapp:latest
# Deploy on production server
docker pull registry.com/myapp:latest
docker run -d -p 80:3000 --name myapp-prod registry.com/myapp:latest
Debug dei Container
# Check container logs
docker logs -f container-name
# Execute shell in running container
docker exec -it container-name bash
# Inspect container configuration
docker inspect container-name
# Check resource usage
docker stats container-name
Migliori Pratiche
Ottimizzazione Dockerfile
- Utilizzare build multi-stage per ridurre la dimensione dell’immagine
- Sfruttare la cache di build ordinando correttamente le istruzioni
- Utilizzare tag specifici per immagini base, evitare
latest
- Minimizzare il numero di layer
- Utilizzare
.dockerignoreper escludere file non necessari
Sicurezza
- Eseguire container come utente non root
- Utilizzare immagini base ufficiali quando possibile
- Aggiornare regolarmente le immagini base
- Scansionare le immagini per vulnerabilità
- Limitare le risorse del container (CPU, memoria)
Prestazioni
- Utilizzare immagini base appropriate (alpine per dimensioni ridotte)
- Ottimizzare la cache dei layer
- Utilizzare health check per i container
- Monitorare l’utilizzo delle risorse del container
- Utilizzare volumi per dati persistenti
Distribuzione in Produzione
- Utilizzare strumenti di orchestrazione (Docker Swarm, Kubernetes)
- Implementare logging e monitoraggio appropriati
- Utilizzare gestione dei segreti per dati sensibili
- Configurare backup automatici
- Implementare aggiornamenti rolling
Note: I left placeholders for texts 3-13 as they were not provided in the original request. If you want those translated as well, please provide the specific text for each numbered section.