Comandi Essenziali di Docker CLI: Una Guida per Principianti

I comandi Docker CLI sono fondamentali per gestire le applicazioni containerizzate. Questa guida illustra comandi essenziali come `docker run`, `docker ps` e `docker build` per semplificare il flusso di lavoro di sviluppo.
Indice
comandi-docker-cli-essenziali-una-guida-per-principianti-2

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

  1. Download Docker: Visit the sito web di Docker and download the appropriate version for your operating system.

  2. 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.

  3. 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.

  4. Test di InstallazioneApri il terminale ed esegui il comando:

    docker --version

    Questo 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 help

This 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 Docker

This 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:latest

This 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 ps

Per visualizzare tutti i container (inclusi quelli arrestati), eseguire:

docker ps -a

b. 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:latest

The -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 elimina

e. 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 ls

b. Creating a Network

To create a new network:

docker network create [NOME_RETE]

Example:

docker network crea my_network

c. 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 ls

b. 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 prune

5. 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: esempio

b. Starting Services

Per avviare i servizi definiti nel tuo docker-compose.yml file, run:

docker-compose avvia

Aggiungi il -d bandiera per eseguire in modalità distaccata.

c. Interruzione dei Servizi

To stop running services, use:

docker-compose ferma

Questo 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:

  1. Utilizza le Immagini UfficialiQuando possibile, utilizza le immagini ufficiali di Docker Hub. Queste vengono regolarmente aggiornate e mantenute da fonti affidabili.

  2. Limit Container PrivilegesEseguire i container con i privilegi minimi necessari. Utilizzare il --utente opzione per specificare un utente ed evitare di eseguire come root.

  3. Scansiona regolarmente le immagini: Use tools like Docker Bench Security o altri strumenti di scansione per verificare la presenza di vulnerabilità nelle tue immagini.

  4. Controllo dell'utilizzo delle risorseLimita la quantità di CPU e memoria che un contenitore può utilizzare con il --memoria and --cpus opzioni quando si esegue un contenitore.

  5. 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!