Docker CLI: Essential Commands for Beginners
Docker è una piattaforma potente che consente agli sviluppatori di automatizzare la distribuzione di applicazioni all'interno di contenitori leggeri. I contenitori incapsulano un'applicazione e le sue dipendenze, garantendo che funzioni senza problemi in diversi ambienti. Sebbene Docker fornisca un'interfaccia grafica utente (GUI) in alcuni casi, l'interfaccia a riga di comando (CLI) è il modo più efficiente e preferito per interagire con Docker. In questo articolo, esploreremo in profondità i comandi essenziali della CLI di Docker, fornendo una guida completa per i principianti che mirano a sfruttare il potere di Docker.
Cos'è Docker?
Prima di approfondire i comandi CLI, facciamo un breve ripasso di cosa sia Docker. Docker è una piattaforma di containerizzazione open-source che consente agli sviluppatori di impacchettare le applicazioni in container. Un container include il codice dell'applicazione, il runtime, le librerie e gli strumenti di sistema necessari per eseguire l'applicazione. Questo isolamento permette agli sviluppatori di essere sicuri che la loro applicazione si comporterà allo stesso modo indipendentemente da dove viene eseguita, che si tratti della macchina di uno sviluppatore, di un server di staging o in produzione.
Installazione di Docker
Before you can start using Docker CLI commands, you need to install Docker on your machine. Docker provides detailed instructions for various operating systems—Windows, macOS, and Linux. The installation process typically involves downloading Docker Desktop for Windows and macOS or installing Docker Engine for Linux distributions.
Passaggi di installazione
Download Docker: Visit the sito web di Docker and download the appropriate version for your operating system.
Install Docker: Seguire le istruzioni di installazione specifiche per il proprio sistema operativo. Su Linux, potrebbe essere necessario configurare il repository Docker e installare Docker tramite il gestore di pacchetti.
Avvia DockerAssicurati che Docker sia in esecuzione sul tuo computer. Su Docker Desktop, potresti vedere un'icona nella barra delle applicazioni che indica che Docker è attivo.
Test di InstallazioneApri il terminale ed esegui il comando:
docker --versionQuesto dovrebbe restituire la versione installata di Docker se tutto è stato configurato correttamente.
Nozioni di base della CLI Docker
La CLI di Docker permette agli utenti di interagire con il demone Docker e gestire contenitori, immagini, reti e volumi Docker. La sintassi di base di qualsiasi comando Docker è:
docker [OPZIONI] COMANDO [ARG...]To get familiar with Docker commands, you can always start by running:
docker helpThis command will provide you with a brief overview of available commands.
Comandi essenziali della CLI di Docker
1. Docker Images
Images are the blueprints for containers. They contain everything needed to run applications, including the code, libraries, and runtime. The following commands are fundamental when working with Docker images.
a. Elenco delle immagini
Per elencare tutte le immagini sul tuo sistema locale, usa:
immagini DockerThis command displays a list of images, including their repository, tag, image ID, creation date, and size.
b. Estrarre un'Immagine
To download a Docker image from Docker Hub, use:
docker pull [IMAGE:TAG]Per esempio:
docker pull nginx:latestThis command fetches the latest version of the Nginx image.
c. Costruire un'immagine
Puoi creare la tua immagine Docker utilizzando un Dockerfile. Usa il seguente comando per costruire un'immagine:
docker build -t [NOME_IMMAGINE:TAG] [PERCORSO_DEL_DOCKERFILE]Example:
docker build -t myapp:1.0 .This command builds an image named myapp con l'etichetta 1.0 utilizzando il Dockerfile nella directory corrente.
d. Removing an Image
Per rimuovere un'immagine, utilizzare:
docker rmi [IMAGE_ID]Se un'immagine è utilizzata da un container, potrebbe essere necessario rimuovere prima il container o utilizzare il -f flag to force the removal.
2. Docker Containers
Containers are instances of Docker images that run applications. You can create, start, stop, and manage containers using various Docker CLI commands.
a. Elenco dei Container
To list running containers, use:
docker psPer visualizzare tutti i container (inclusi quelli arrestati), eseguire:
docker ps -ab. Esecuzione di un container
To create and start a new container from an image, use:
docker run [OPTIONS] [IMAGE:TAG]Ad esempio, per eseguire un nuovo contenitore Nginx:
docker run -d -p 80:80 nginx:latestThe -d l'opzione esegue il contenitore in modalità distaccata, e -p maps port 80 of the container to port 80 of the host.
c. Arresto di un Container
To stop a running container, use:
docker stop [CONTAINER_ID]You can also use the container name as an identifier.
d. Rimuovere un contenitore
Per rimuovere un contenitore arrestato, utilizzare:
docker rm [CONTAINER_ID]Per rimuovere tutti i contenitori arrestati, puoi eseguire:
docker contenitore eliminae. Viewing Logs
To view the logs from a container, use:
docker logs [CONTAINER_ID]Questo è particolarmente utile per il debug delle applicazioni in esecuzione all'interno di un container.
3. Docker Networks
Docker ti permette di creare e gestire reti, consentendo ai contenitori di comunicare tra loro.
a. Listing Networks
Per visualizzare tutte le reti disponibili, usa:
docker network lsb. Creating a Network
To create a new network:
docker network create [NOME_RETE]Example:
docker network crea my_networkc. Connecting a Container to a Network
Per collegare un contenitore esistente a una rete:
docker network connect [NOME_RETE] [ID_CONTAINER]d. Disconnecting a Container from a Network
To disconnect a container from a network:
docker network disconnect [NOME_RETE] [ID_CONTAINER]4. Docker Volumes
I volumi vengono utilizzati per persistire i dati generati e utilizzati dai container Docker. Forniscono un modo per memorizzare i dati al di fuori dei container, consentendo ai dati di rimanere intatti anche se i container vengono arrestati o rimossi.
a. Elenco Volumi
Per elencare tutti i volumi, utilizzare:
docker volume lsb. Creazione di un Volume
To create a new volume:
docker volume create [NOME_VOLUME]c. Ispezionare un Volume
Per ottenere informazioni dettagliate su un volume:
docker volume ispeziona [VOLUME_NAME]d. Rimozione di un Volume
Per rimuovere un volume:
docker volume rm [NOME_VOLUME]To remove all unused volumes:
docker volume prune5. Docker Compose
Sebbene non sia un singolo comando, Docker Compose è uno strumento essenziale per gestire applicazioni multi-container. Consente di definire ed eseguire applicazioni Docker con più container utilizzando un singolo file YAML.
a. Definizione di un file Compose
Create a docker-compose.yml file in cui definisci i tuoi servizi, reti e volumi.
Example:
version: '3'
services:
web:
image: nginx
ports:
- "80:80"
db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: esempiob. Starting Services
Per avviare i servizi definiti nel tuo docker-compose.yml file, run:
docker-compose avviaAggiungi il -d bandiera per eseguire in modalità distaccata.
c. Interruzione dei Servizi
To stop running services, use:
docker-compose fermaQuesto comando arresta e rimuove i contenitori definiti nel docker-compose.yml file.
Sicurezza Docker
Sebbene Docker semplifichi la distribuzione delle applicazioni, la sicurezza è fondamentale, specialmente negli ambienti di produzione. Comprendere le implicazioni di sicurezza della containerizzazione può aiutarti a mitigare i rischi. Ecco alcune best practice:
Utilizza le Immagini UfficialiQuando possibile, utilizza le immagini ufficiali di Docker Hub. Queste vengono regolarmente aggiornate e mantenute da fonti affidabili.
Limit Container PrivilegesEseguire i container con i privilegi minimi necessari. Utilizzare il
--utenteopzione per specificare un utente ed evitare di eseguire come root.Scansiona regolarmente le immagini: Use tools like Docker Bench Security o altri strumenti di scansione per verificare la presenza di vulnerabilità nelle tue immagini.
Controllo dell'utilizzo delle risorseLimita la quantità di CPU e memoria che un contenitore può utilizzare con il
--memoriaand--cpusopzioni quando si esegue un contenitore.Network SecurityIsolare i contenitori utilizzando reti e limitare l'accesso solo a quelli che ne hanno bisogno.
Conclusione
Comprendere Docker CLI e i suoi comandi essenziali è fondamentale per qualsiasi sviluppatore che desideri sfruttare appieno il potere della containerizzazione. I comandi descritti in questo articolo forniscono una solida base per i principianti, permettendo di gestire efficacemente immagini, container, reti e volumi.
As you advance in your Docker journey, consider exploring more complex scenarios such as multi-container applications with Docker Compose, orchestration with Kubernetes, and continuous integration and deployment (CI/CD) pipelines that integrate Docker for automated deployments.
Dominando la CLI di Docker, potrai migliorare il tuo flusso di lavoro di sviluppo, aumentare la coerenza delle tue applicazioni e, in definitiva, consegnare software migliore più velocemente. Buon Dockerizing!
Post correlati:
- Dominare Docker Compose: Comandi Essenziali Spiegati
- Common Errors Encountered When Using Docker CLI: A Guide
- Errori comuni durante l'esecuzione dei comandi Docker e soluzioni1. "Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?"Questo errore si verifica quando il daemon Docker non è in esecuzione. Per risolverlo, avvia il daemon Docker con il comando:``` sudo systemctl start docker ```2. "Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock"Questo errore si verifica quando l'utente che esegue il comando Docker non ha i permessi necessari. Per risolverlo, aggiungi l'utente al gruppo Docker con il comando:``` sudo usermod -aG docker $USER ```3. "Error response from daemon: conflict: unable to remove repository reference"Questo errore si verifica quando si tenta di rimuovere un'immagine Docker che è attualmente in uso da un contenitore. Per risolverlo, arresta e rimuovi il contenitore prima di rimuovere l'immagine.4. "Error response from daemon: No such container"Questo errore si verifica quando si tenta di eseguire un comando su un contenitore che non esiste. Verifica che il nome del contenitore sia corretto e che il contenitore sia in esecuzione.5. "Error response from daemon: No such image"Questo errore si verifica quando si tenta di eseguire un comando su un'immagine Docker che non esiste. Verifica che il nome dell'immagine sia corretto e che l'immagine sia stata scaricata.6. "Error response from daemon: port is already allocated"Questo errore si verifica quando si tenta di avviare un contenitore su una porta già in uso da un altro contenitore. Per risolverlo, utilizza una porta diversa o arresta il contenitore che sta utilizzando la porta.7. "Error response from daemon: failed to create shim: OCI runtime create failed"Questo errore si verifica quando il runtime del contenitore non è in grado di creare il contenitore. Per risolverlo, verifica che il runtime del contenitore sia installato e configurato correttamente.8. "Error response from daemon: failed to register layer: Error processing tar file (exit status 1)"Questo errore si verifica quando il daemon Docker non è in grado di elaborare un file tar durante il caricamento di un'immagine. Per risolverlo, verifica che il file tar non sia danneggiato e che il daemon Docker abbia spazio sufficiente sul disco.9. "Error response from daemon: failed to create endpoint my-network on network my-network: hnsCall failed in Win32: The object already exists."Questo errore si verifica quando si tenta di creare una rete Docker con lo stesso nome di una rete esistente. Per risolverlo, utilizza un nome diverso per la rete o rimuovi la rete esistente.10. "Error response from daemon: failed to create shim: docker-runc not installed on system"Questo errore si verifica quando il runtime del contenitore docker-runc non è installato sul sistema. Per risolverlo, installa docker-runc con il comando:``` sudo apt-get install docker-runc ```
- Essential Docker Security Best Practices for Safe Deployments
