Salta ai contenuti

Comandi Docker

Comandi Docker completi e workflow per la containerizzazione su tutte le piattaforme.

Comandi Base

ComandoDescrizione
docker --versionMostra versione Docker
docker infoVisualizza informazioni di sistema
docker helpMostra l’aiuto per i comandi Docker
docker imagesElenca tutte le immagini
docker psElenca container in esecuzione
docker ps -aElenca 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

ComandoDescrizione
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> bashEsegui 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 statsMostra utilizzo risorse del container
docker top <container>Mostra processi in esecuzione nel container

Gestione Immagini

ComandoDescrizione
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.tarSalva immagine in file tar
docker load < file.tarCarica immagine da file tar
docker history <image>Mostra cronologia immagini
docker search <term>Cerca immagini nel registry

Docker Compose

ComandoDescrizione
docker-compose upAvvia i servizi definiti nel file compose
docker-compose up -dAvvia servizi in modalità detached
docker-compose downFerma e rimuovi container
docker-compose buildCostruire o ricostruire servizi
docker-compose logsVisualizza log per tutti i servizi
docker-compose psElencare container
docker-compose exec <service> bashEsegui comando nel servizio
docker-compose pullScarica le ultime immagini
docker-compose restartRiavvia servizi

Gestione Rete

ComandoDescrizione
docker network lsElenco 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

ComandoDescrizione
docker volume lsElenca volumi
docker volume create <name>Crea un volume
docker volume rm <name>Rimuovi un volume
docker volume inspect <name>Ispeziona dettagli volume
docker volume pruneRimuovi 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.