Foglio di riferimento di Docker

Alcuni parametri comuni dei comandi Docker

Indice

Ecco un compendio rapido di Docker che copre i comandi più importanti e i concetti, dall’installazione all’esecuzione dei container e alla pulizia:

logo docker

Questa guida fa parte di Strumenti per sviluppatori: La guida completa ai flussi di lavoro di sviluppo moderni.

Installazione

Per una guida completa all’installazione di Docker su Ubuntu — che confronta il repository APT ufficiale, docker.io, Snap, la modalità senza privilegi di root (rootless) e la configurazione del plugin Compose — consulta Installa Docker su Ubuntu.

Dopo l’installazione, aggiungi il tuo utente al gruppo docker se devi eseguire comandi senza sudo:

sudo usermod -aG docker $USER
newgrp docker
docker run hello-world

La guida all’installazione copre anche i compromessi di sicurezza relativi all’appartenenza al gruppo docker e le alternative senza privilegi di root.

Comandi Docker Generali

Versione e Informazioni di Sistema

docker version          # Visualizza le versioni di Docker CLI e del daemon
docker system info      # Elenca i dati relativi al tuo ambiente Docker
docker help             # Visualizza l'indice di aiuto
docker <comando> --help # Visualizza le informazioni di aiuto per un comando specifico

Accesso e Disconnessione

docker login            # Accedi a Docker Hub
docker logout           # Disconnettiti da Docker Hub

Gestione delle Immagini

Elenco Immagini

docker images           # Elenca tutte le immagini
docker images -a        # Elenca tutte le immagini, incluse quelle intermedie

Scarica Immagini

docker pull <nome-immagine:versione> # Scarica un'immagine da Docker Hub

Crea Immagini

docker build -t <nome-immagine> . # Crea un'immagine dal Dockerfile nella directory corrente
docker build -f <percorso-Dockerfile> -t <nome-immagine> . # Crea un'immagine da un Dockerfile specifico
docker build --build-arg foo=bar . # Crea un'immagine con argomenti di compilazione
docker build --pull . # Scarica le versioni aggiornate delle immagini riferite nelle istruzioni FROM
docker build --quiet . # Crea un'immagine senza visualizzare l'output

Etichetta e Carica Immagini

docker tag <nome-immagine-locale> <username>/<nome-immagine-preferito>
docker push <username>/<nome-immagine-preferito>

Rimuovi Immagini

docker rmi <nome-immagine>        # Rimuovi un'immagine specifica
docker image prune             # Rimuovi le immagini non utilizzate
docker image prune -a          # Rimuovi tutte le immagini non utilizzate

Rimuovi immagini orfane

docker rmi $(docker images --filter "dangling=true" -q --no-trunc)

Rimuovi etichetta immagine

docker rmi repository/nome-immagine:tag

Gestione dei Container

Esegui Container

docker run -itd --name <nome-container> <nome-immagine> # Esegui un container in modalità staccata
docker run -it -p <porta-host>:<porta-docker> <nome-immagine> # Esegui un container con mapping delle porte
docker run -it --name <nome-container> <nome-immagine> # Esegui un container in modalità interattiva

Elenco Container

docker ps                  # Elenca i container in esecuzione
docker ps -a               # Elenca tutti i container
docker ps -s               # Elenca i container in esecuzione con l'utilizzo di CPU e memoria

Avvia, Ferma e Riavvia Container

docker start <nome-container>   # Avvia un container fermato
docker stop <nome-container>    # Ferma un container in esecuzione
docker restart <nome-container> # Riavvia un container

Rimuovi Container

docker rm <nome-container>      # Rimuovi un container fermato
docker rm -f <nome-container>   # Rimuovi forzatamente un container
docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q) # Rimuovi tutti i container

Rimuovi tutti i container fermati

docker container prune

Connettiti ai Container

docker attach <nome-container>  # Connettiti a un container in esecuzione
docker exec -it <nome-container> bash # Esegui un comando in un container in esecuzione in modalità interattiva

Ispeziona Container

docker inspect <nome-container> # Ispeziona un container
docker logs <nome-container>    # Visualizza i log di un container
docker port <nome-container>    # Mostra i mapping delle porte di un container

Gestione delle Reti

docker network ls            # Elenca tutte le reti
docker network create <nome-rete> # Crea una nuova rete
docker network rm <nome-rete>    # Rimuovi una rete

Gestione dei Volumi

docker volume ls             # Elenca tutti i volumi
docker volume create <nome-volume> # Crea un nuovo volume
docker volume rm <nome-volume>    # Rimuovi un volume
docker run -v <percorso-host>:<percorso-container> <nome-immagine> # Monta un volume

Docker Compose

Per stack multi-container e comandi quotidiani di Compose, consulta il Compendio Rapido Docker Compose. Quando un progetto Compose deve avviarsi all’avvio e sopravvivere ai riavvii su un server Linux, Esegui Docker Compose come Servizio Linux con systemd copre i file unità e le abitudini operative.

Comandi di Base

docker-compose up           # Avvia i servizi definiti in docker-compose.yml
docker-compose up -d        # Avvia i servizi in modalità staccata
docker-compose down         # Ferma e rimuovi i servizi
docker-compose ps           # Elenca i servizi in esecuzione
docker-compose logs         # Visualizza i log dei servizi
docker-compose start        # Avvia i servizi
docker-compose stop         # Ferma i servizi
docker-compose pause        # Metti in pausa i servizi
docker-compose unpause      # Riprendi i servizi dalla pausa

Comandi Dockerfile

Crea Immagine da Dockerfile

docker build -t <nome-immagine> <percorso-Dockerfile> # Crea un'immagine da un Dockerfile

Esempio di Dockerfile

FROM <immagine-base>
RUN <comando>
COPY <sorgente> <destinazione>
EXPOSE <porta>
CMD ["<comando>", "<argomento>"]

Sicurezza e Segreti

Segreti Docker

docker secret create <nome-segreto> <file> # Crea un segreto
docker secret ls                         # Elenca tutti i segreti
docker secret rm <nome-segreto>          # Rimuovi un segreto

Sicurezza Docker

  • Utilizza i segreti Docker per gestire centralmente i dati sensibili e trasmetterli in modo sicuro ai container.
  • I segreti sono crittografati durante il transito e a riposo in uno swarm Docker.

Pulizia

Rimuovi Risorse Non Utilizzate

docker system prune          # Rimuovi i dati non utilizzati (immagini, container, reti, volumi)
docker image prune           # Rimuovi le immagini non utilizzate
docker container prune       # Rimuovi i container non utilizzati
docker network prune         # Rimuovi le reti non utilizzate
docker volume prune          # Rimuovi i volumi non utilizzati

Rimuovi immagini senza etichetta

A volte, dopo una lunga compilazione, si ottiene un output simile a questo dal comando docker images:

moltissime immagini senza etichetta

per rimuovere quelle immagini con tag :

docker rmi $(docker images --filter “dangling=true” -q --no-trunc)

Il comando sopra è vecchio e incompatibile. Il parametro dangling=true è obsoleto. Utilizza

docker system prune

ti verrà chiesto:

ATTENZIONE! Questo rimuoverà:
	- tutti i container fermati
	- tutti i volumi non utilizzati da almeno un container
	- tutte le reti non utilizzate da almeno un container
	- tutte le immagini orfane

Potresti decidere di dire Sì a questo avviso…

Questo compendio copre i comandi e i concetti essenziali necessari per gestire container, immagini, reti, volumi Docker e altro ancora. Per un approfondimento, fai riferimento alle guide e ai tutorial dettagliati disponibili online.

Iscriviti

Ricevi nuovi articoli su sistemi, infrastruttura e ingegneria AI.