Vai al contenuto

Comandi Docker

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.