Docker Cheat Sheet
Alcuni parametri comuni dei comandi docker
Indice
Ecco una Docker cheat sheet che copre i comandi più importanti e i concetti da installare fino all’esecuzione dei contenitori e alla pulizia:
Installazione
Su Ubuntu
sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
sudo apt update
sudo apt install docker-ce
sudo systemctl start docker
Installazione di Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker-compose --version
Comandi Generali di Docker
Versione e Informazioni del Sistema
docker version # Mostra le versioni del CLI e del demone Docker
docker system info # Elenco dei dati sull'ambiente Docker
docker help # Visualizza l'indice dell'aiuto
docker <command> --help # Visualizza le informazioni sull'aiuto per un comando specifico
Login e Logout
docker login # Login su Docker Hub
docker logout # Logout da Docker Hub
Gestione delle Immagini
Elenco delle Immagini
docker images # Elenco di tutte le immagini
docker images -a # Elenco di tutte le immagini, comprese quelle intermedie
Pull delle Immagini
docker pull <image-name:version> # Scarica un'immagine da Docker Hub
Costruzione delle Immagini
docker build -t <image-name> . # Costruisci un'immagine dal Dockerfile nella directory corrente
docker build -f <Dockerfile-path> -t <image-name> . # Costruisci un'immagine da un Dockerfile specifico
docker build --build-arg foo=bar . # Costruisci un'immagine con argomenti di costruzione
docker build --pull . # Scarica le versioni aggiornate delle immagini riferite nelle istruzioni FROM
docker build --quiet . # Costruisci un'immagine senza emettere output
Etichettatura e Push delle Immagini
docker tag <local-image-name> <username>/<preferred-image-name>
docker push <username>/<preferred-image-name>
Rimozione delle Immagini
docker rmi <image-name> # Rimuovi un'immagine specifica
docker image prune # Rimuovi le immagini non utilizzate
docker image prune -a # Rimuovi tutte le immagini non utilizzate
Rimozione delle immagini orfane
docker rmi $(docker images --filter "dangling=true" -q --no-trunc)
Rimozione dell’etichetta
docker rmi repository/image-name:tag
Gestione dei Contenitori
Esecuzione dei Contenitori
docker run -itd --name <container-name> <image-name> # Esegui un contenitore in modalità detaccata
docker run -it -p <host-port>:<docker-port> <image-name> # Esegui un contenitore con mappatura delle porte
docker run -it --name <container-name> <image-name> # Esegui un contenitore interattivamente
Elenco dei Contenitori
docker ps # Elenco dei contenitori in esecuzione
docker ps -a # Elenco di tutti i contenitori
docker ps -s # Elenco dei contenitori in esecuzione con utilizzo CPU e memoria
Avvio, Arresto e Riavvio dei Contenitori
docker start <container-name> # Avvia un contenitore arrestato
docker stop <container-name> # Arresta un contenitore in esecuzione
docker restart <container-name> # Riavvia un contenitore
Rimozione dei Contenitori
docker rm <container-name> # Rimuovi un contenitore arrestato
docker rm -f <container-name> # Rimuovi forzatamente un contenitore
docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q) # Rimuovi tutti i contenitori
rimuovi tutti i contenitori arrestati
docker container prune
Collegamento ai Contenitori
docker attach <container-name> # Collegati a un contenitore in esecuzione
docker exec -it <container-name> bash # Esegui un comando in un contenitore in esecuzione in modo interattivo
Ispezione dei Contenitori
docker inspect <container-name> # Ispeziona un contenitore
docker logs <container-name> # Visualizza i log di un contenitore
docker port <container-name> # Mostra le mappature delle porte di un contenitore
Gestione delle Reti
docker network ls # Elenco di tutte le reti
docker network create <network-name> # Crea una nuova rete
docker network rm <network-name> # Rimuovi una rete
Gestione dei Volumi
docker volume ls # Elenco di tutti i volumi
docker volume create <volume-name> # Crea un nuovo volume
docker volume rm <volume-name> # Rimuovi un volume
docker run -v <host-path>:<container-path> <image-name> # Monta un volume
Docker Compose
Comandi di Base
docker-compose up # Avvia i servizi definiti nel file docker-compose.yml
docker-compose up -d # Avvia i servizi in modalità detaccata
docker-compose down # Arresta e rimuovi i servizi
docker-compose ps # Elenco dei servizi in esecuzione
docker-compose logs # Visualizza i log dei servizi
docker-compose start # Avvia i servizi
docker-compose stop # Arresta i servizi
docker-compose pause # Pausa i servizi
docker-compose unpause # Riprendi i servizi
Comandi Dockerfile
Costruisci un’immagine da un Dockerfile
docker build -t <image-name> <Dockerfile-path> # Costruisci un'immagine da un Dockerfile
Esempio di Dockerfile
FROM <base-image>
RUN <command>
COPY <source> <destination>
EXPOSE <port>
CMD ["<command>", "<argument>"]
Sicurezza e Segreti
Segreti Docker
docker secret create <secret-name> <file> # Crea un segreto
docker secret ls # Elenco di tutti i segreti
docker secret rm <secret-name> # Rimuovi un segreto
Sicurezza Docker
- Utilizza i segreti Docker per gestire centralmente i dati sensibili e trasmetterli in modo sicuro ai contenitori.
- I segreti sono crittografati durante la trasmissione e a riposo in un swarm Docker.
Pulizia
Rimozione delle risorse non utilizzate
docker system prune # Rimuovi i dati non utilizzati (immagini, contenitori, reti, volumi)
docker image prune # Rimuovi le immagini non utilizzate
docker container prune # Rimuovi i contenitori non utilizzati
docker network prune # Rimuovi le reti non utilizzate
docker volume prune # Rimuovi i volumi non utilizzati
Rimozione delle immagini non etichettate
A volte, dopo una compilazione molto buona, c’è un’immagine simile a questa proveniente dal comando docker images
:
per rimuovere quelle immagini con etichette
docker rmi $(docker images --filter “dangling=true” -q --no-trunc)
quello sopra è obsoleto e non compatibile. Utilizza
docker system prune
chiederà:
AVVERTENZA! Questo rimuoverà:
- tutti i contenitori arrestati
- tutti i volumi non utilizzati da almeno un contenitore
- tutte le reti non utilizzate da almeno un contenitore
- tutte le immagini orfane
potresti decidere di dire Sì a questa avvertenza…
Questa cheat sheet copre i comandi essenziali e i concetti necessari per gestire i contenitori, le immagini, le reti, i volumi e altro ancora di Docker. Per un’immersione più approfondita, riferirsi alle guide e ai tutorial dettagliati disponibili online.
Link utili
- Python Cheatsheet
- Conda Cheatsheet
- Bash Cheat Sheet
- Ollama cheatsheet
- Kubernetes Cheatsheet
- Codifica e decodifica Base64 su Windows, Linux e Mac
- Installare Portainer su Linux
- Riinstallare Linux
- Come avviare finestre del terminale in modo tile su Linux Mint e Ubuntu
- MinIO come alternativa ad AWS S3. Panoramica e installazione di MinIO
- MinIO Parametri della riga di comando Cheatsheet