Dai un’occhiata al nostro esclusivo foglio di riferimento su Docker!

Sfoglia il nostro foglio di riferimento esclusivo su Docker!

Introduzione

Docker è una piattaforma open-source che semplifica il processo di costruzione, distribuzione ed esecuzione di applicazioni utilizzando i container. I container consentono agli sviluppatori di confezionare le applicazioni e le loro dipendenze, rendendole portabili e coerenti tra diversi ambienti. Questa guida rapida su Docker fornisce un riferimento veloce per i comandi e i concetti essenziali per lavorare efficacemente con Docker.

Cos’è Docker?

Docker è una piattaforma di containerizzazione che consente agli sviluppatori di creare, distribuire e gestire applicazioni all’interno di container isolati. Questi container confezionano il codice dell’applicazione, l’ambiente di runtime, le librerie e le dipendenze, garantendo coerenza ed efficienza su diversi sistemi.

Per saperne di più: Una guida completa su Docker per principianti

Architettura di Docker

Docker segue un’architettura client-server:

  • Client Docker: Lo strumento a linea di comando che consente agli utenti di interagire con il demone Docker.
  • Demone Docker: Il servizio in background responsabile della costruzione, esecuzione e gestione dei container Docker.
  • Immagini Docker: Modelli di sola lettura utilizzati per creare i container.
  • Container Docker: Istanze in esecuzione delle immagini Docker.
  • Registry Docker: Un repository per la memorizzazione e la distribuzione delle immagini Docker.

Installazione di Docker

Per installare Docker nel tuo sistema, segui le istruzioni appropriate per il tuo sistema operativo. Di seguito sono riportati i passaggi per Windows e MacOS.

Windows

Verifica i requisiti di sistema

Windows 10 a 64 bit: edizioni Pro, Enterprise o Education

Virtualizzazione dell’hardware abilitata nel BIOS/UEFI (Intel VT-x/AMD-V)

Scarica Docker Desktop

Vai sul sito ufficiale di Docker e scarica l’installer di Docker Desktop per Windows.

Installazione di Docker Desktop

Esegui l’installer scaricato e segui la procedura di installazione. Ti guiderà attraverso il processo.

Avvia Docker

Una volta installato, Docker Desktop dovrebbe avviarsi automaticamente. Vedrai l’icona di Docker nella barra di sistema quando è in esecuzione.

MacOS

Verifica i requisiti di sistema

macOS Sierra 10.12 o successivo

macOS deve essere un modello del 2010 o successivo, con il supporto hardware di Intel per la virtualizzazione dell’unità di gestione della memoria (MMU).

Scarica Docker Desktop per Mac

Visita il sito ufficiale di Docker e scarica l’installer di Docker Desktop per macOS.

Installazione di Docker Desktop

Apri il file .dmg scaricato e trascina l’icona di Docker nella cartella Applicazioni.

Avvia Docker

Apri Docker dalla cartella Applicazioni. Comparirà nella barra dei menu, indicando che è in esecuzione.

Registry e Repository di Docker

Docker Registry è un servizio che memorizza e gestisce le immagini Docker. Funge da repository centrale in cui gli utenti possono archiviare, condividere e scaricare immagini Docker. Docker Hub è un Docker Registry pubblico, mentre è possibile configurare registry privati per la memorizzazione interna sicura delle immagini.

Un Repository Docker è una raccolta di immagini correlate con lo stesso nome, differenziate da tag che rappresentano diverse versioni o configurazioni. Gli utenti possono caricare immagini in un repository in un registry, mentre gli altri possono scaricare queste immagini per eseguire i container. I registries e i repositories sono fondamentali per semplificare la distribuzione delle immagini e facilitare lo sviluppo collaborativo nell’ecosistema Docker.

Di seguito sono riportati i comandi della guida rapida su Docker per varie funzioni-

Esecuzione dei Container

Per eseguire un container da un’immagine, utilizza il seguente comando: docker run [opzioni] IMMAGINE [comando]

Ad esempio, per eseguire un server web Nginx: docker run -d -p 80:80 nginx

Avvio o Arresto del Container

  1. Per avviare un container fermo, utilizza: docker start ID_CONTAINER
  2. Per arrestare un container in esecuzione, utilizza: docker stop ID_CONTAINER

Ottenere Informazioni sul Container

  1. Per elencare tutti i container in esecuzione, utilizza: docker ps
  2. Per visualizzare tutti i container (compresi quelli fermi), utilizza: docker ps -a

Gestione delle immagini

  1. Per scaricare un’immagine da un registro, utilizzare: docker pull NOME_IMMAGINE[:TAG]
  2. Per creare un’immagine da un Dockerfile, navigare nella directory del Dockerfile e utilizzare: docker build -t NOME_IMMAGINE[:TAG].

Networking

  1. Per creare una rete di bridge definita dall’utente, utilizzare: docker network create NOME_RETE
  2. Per collegare un contenitore a una rete, utilizzare: docker network connect NOME_RETE NOME_CONTENITORE

Pulizia di Docker

  1. Per rimuovere un contenitore terminato, utilizzare: docker rm ID_CONTENITORE
  2. Per rimuovere un’immagine, utilizzare: docker rmi NOME_IMMAGINE
  3. Per ripulire le risorse inutilizzate (contenitori, reti, immagini e volumi), utilizzare: docker system prune

Orchestrazione

Docker Compose è uno strumento per definire e gestire applicazioni Docker multi-contenitore. Configura i servizi, le reti e i volumi dell’applicazione utilizzando un file YAML. Con Docker Compose, è possibile creare facilmente ambienti e applicazioni complesse. Ecco i comandi per Docker Compose-

  1. Per creare e avviare tutti i contenitori definiti nel file docker-compose.yml, utilizzare: docker-compose up
  2. Per creare e avviare i contenitori in modalità staccata, utilizzare: docker-compose up -d
  3. Per interrompere e rimuovere tutti i contenitori, le reti e i volumi creati da docker-compose up, utilizzare: docker-compose down
  4. Per elencare tutti i contenitori in esecuzione definiti nel file docker-compose.yml, utilizzare: docker-compose ps
  5. Per visualizzare i registri di un servizio specifico, utilizzare: docker-compose logs [nome_servizio]
  6. Per compilare o ricostruire le immagini definite nel file docker-compose.yml, utilizzare: docker-compose build
  7. Per eseguire un comando all’interno di un contenitore di servizio specifico, utilizzare: docker-compose exec [nome_servizio] [comando]

Servizi

I servizi in modalità Docker Swarm definiscono i task su un cluster. Consentono di scalare l’applicazione su più nodi e garantire l’alta disponibilità. Ecco i comandi per i servizi:

  1. Per inizializzare un Docker Swarm sul nodo corrente, utilizzare: docker swarm init
  2. Per unirsi a un Docker Swarm come nodo worker, utilizzare: docker swarm join
  3. Per elencare i nodi nel Docker Swarm, utilizzare: docker node ls
  4. Per creare un nuovo servizio, utilizzare: docker service create
  5. Per elencare tutti i servizi in esecuzione nel Swarm, utilizzare: docker service ls
  6. Per elencare i task (contenitori) di un servizio, utilizzare: docker service ps [nome_servizio]
  7. Per scalare un servizio a N repliche, utilizzare: docker service scale [nome_servizio]=N
  8. Per aggiornare un servizio (ad esempio, modificare repliche, versione dell’immagine), utilizzare: docker service update
  9. Per rimuovere un servizio dal Swarm, utilizzare: docker service rm [nome_servizio]
  10. Per impostare un nodo in modalità “drain”, il che significa che non riceverà nuovi task, utilizzare: docker node update –availability drain [nome_nodo]

Interazione con un contenitore

Per eseguire comandi all’interno di un contenitore in esecuzione, utilizzare: docker exec [opzioni] ID_CONTENITORE COMANDO [ARG…]

Ad esempio, per accedere alla shell di un contenitore in esecuzione: docker exec -it ID_CONTENITORE sh

Termini importanti

  • Immagine: Un pacchetto software leggero, autonomo ed eseguibile che include tutto il necessario per eseguire un pezzo di software, inclusi il codice, l’ambiente di esecuzione, le librerie e le dipendenze.
  • Contenitore: Un’istanza di un’immagine Docker che può essere eseguita, avviata, interrotta e eliminata.
  • Dockerfile: Un file di testo che contiene istruzioni per la costruzione di un’immagine Docker.
  • Registro: Un sistema di archiviazione e distribuzione dei contenuti per immagini Docker denominate.
  • Repository: Una collezione di immagini Docker con lo stesso nome, distinte dai tag.
  • Docker Compose: Uno strumento per definire e gestire applicazioni Docker multi-contenitore.
  • Docker Swarm: Una soluzione nativa di clustering e orchestrazione per Docker.

Conclusioni

In conclusione, Docker è una piattaforma di containerizzazione essenziale che semplifica il processo di creazione, distribuzione ed esecuzione di applicazioni, racchiudendole e le relative dipendenze in contenitori isolati. Con questa esaustiva guida di riferimento, gli utenti possono sfruttare efficientemente la potenza di Docker, ottimizzare il rilascio delle applicazioni e mantenere la coerenza tra ambienti diversi.