Torna al blog

Come installare e configurare Docker Compose su Ubuntu 20.04

Come installare e configurare Docker Compose su Ubuntu 20.04

Introduzione

La containerizzazione ha preso molto slancio nel settore tecnologico del software negli ultimi anni. Questo può essere attribuito a Docker che è una piattaforma di container che semplifica la gestione dei processi all'interno dei container.

I container sono ambienti standardizzati leggeri, virtualizzati, portatili e definiti dal software che consentono al software di essere eseguito in isolamento rispetto ad altri software in esecuzione sulla macchina host fisica. Questa caratteristica di portabilità consente agli sviluppatori di modularizzare le proprie applicazioni in servizi isolati. Inoltre, possono essere distribuiti in modo indipendente, lasciando spazio alla scalabilità.

Sebbene suddividere un'applicazione in più servizi sia decisamente fantastico, comporta l'onere di gestire diversi container. È necessario assicurarsi che comunichino, si avviino e si spengano contemporaneamente. Grazie a uno strumento chiamato Docker Compose, questo diventa un compito facile. Docker Compose consente agli sviluppatori di eseguire applicazioni Docker multi-container utilizzando regole definite in un file YAML. Il file YAML contiene le definizioni per i servizi dell'applicazione e come questi possono condividere volumi di dati e reti. Una volta definiti i servizi, è possibile avviarli tutti con un singolo comando. In questo tutorial, vi mostreremo come installare, configurare e iniziare a utilizzare Docker Compose su Ubuntu 20.04.

Prerequisiti

Passo 1: Installazione di Docker Compose

Scaricheremo l'ultima versione stabile di Docker Compose dal suo repository GitHub ufficiale. Puoi trovare l'ultima versione dalla pagina delle release, al momento della stesura di questo tutorial, l'ultima versione è 1.28.5.

Per prima cosa, accedi al tuo server Ubuntu con l'utente sudo non root e inserisci il seguente comando. Questo scarica l'ultima release (1.28.5) e salva l'eseguibile nella directory /usr/local/bin/docker-compose. Questo lo rende accessibile a livello globale come docker-compose:

Una volta scaricato, inserisci il seguente comando per impostare i permessi appropriati affinché il comando docker-compose sia eseguibile:

Ora, verifica che l'installazione sia andata a buon fine e che il comando possa essere richiamato eseguendo il seguente comando:

Dovresti ottenere un output come questo:

docker compose version

Questo conferma che Docker Compose è stato installato con successo sul tuo sistema.

Passo 2: Creazione del file docker-compose.yml

Per aiutarti a capire come lavorare con docker-compose.yml, configureremo un ambiente server web utilizzando l'immagine ufficiale immagine Nginx da Docker Hub. Una volta distribuito, dovremmo essere in grado di servire una pagina HTML di base dal container.

Creeremo la nostra directory di lavoro nella cartella home da cui lavoreremo. Inserisci il seguente comando per creare la directory:

Successivamente, spostati nella directory:

Una volta all'interno della directory, crea una cartella dell'applicazione che sarà la radice del documento per l'ambiente Nginx. Possiamo chiamare questa cartella app:

  • Creazione di una pagina HTML

Usiamo l'editor di testo nano per creare il file index.html all'interno della cartella app:

Successivamente, aggiungi il seguente codice HTML al file:

Per salvare il file, premi CTRL +O, INVIO. Quindi, chiudi con CTRL +X. Successivamente, creeremo il file docker-compose.yml all'interno della radice del nostro progetto.

  • Ospitare la pagina HTML utilizzando docker-compose

Successivamente, inserisci il seguente comando per aprire il file con l'editor nano:

Dopodiché, aggiungi il seguente frammento di codice all'interno del file:

Il docker-compose.yml il file inizia con il numero di versione che indica a Docker Compose quale versione di configurazione stiamo utilizzando. Segui questo link per saperne di più su gestione delle versioni di Docker Compose.

Dopo il numero di versione, abbiamo il blocco dei servizi che contiene i servizi che compongono l'ambiente. In questo tutorial, abbiamo specificato solo un singolo servizio chiamato webserver. Il servizio webserver utilizzerà l'immagine nginx:alpine. Abbiamo anche definito il reindirizzamento delle porte 8000:80. Questo significa che tutte le richieste dalla porta 8000 sulla macchina host saranno reindirizzate al container del webserver sulla porta 80, dove Nginx è in esecuzione.

La direttiva volumes consente di creare un volume condiviso tra la macchina host e il container che possiamo utilizzare per rendere persistenti i dati. Nel nostro yml frammento di codice, condividiamo la cartella locale app con il container. All'interno del container, verrà posizionata nel percorso /usr/share/nginx/html. Pertanto, sovrascrive la document root predefinita di Nginx. Ora puoi salvare e chiudere il file.

Fino a questo punto, hai creato la tua pagina web HTML di esempio e il file docker-compose.yml con le istruzioni per creare un ambiente server web containerizzato. Vediamo come possiamo avviare questa configurazione nel passaggio successivo.

Passo 3: Esecuzione del comando Docker Compose

In questo passaggio, eseguiremo il comando per avviare il nostro ambiente containerizzato. Di seguito è riportato il singolo comando che avvierà il processo di download delle immagini Docker, creerà un container per il servizio webserver e avvierà l'ambiente containerizzato in background:

Docker è progettato per essere veloce ed efficiente, quindi, quando esegui il comando precedente, controlla prima il tuo sistema locale alla ricerca dell'immagine definita. Se manca, la scaricherà dal repository Docker Hub. Dovrebbe mostrare un output simile a questo:

 compose up

Al termine dell'esecuzione del comando, l'ambiente del container verrà avviato in background. Puoi verificare che sia in esecuzione utilizzando il comando:

Dovresti ottenere un output simile:

 compose ps

Se navighi all'indirizzo IP o al nome di dominio del tuo server e aggiungi la porta 8000, ovvero server_domain_or_IP:8000 dovresti essere in grado di vedere la pagina HTML di esempio che abbiamo creato:

docker compose webpage

Se ricordi, abbiamo configurato un volume condiviso tra il container e il sistema host. Questo mantiene i file nel container sincronizzati con i file sul sistema host. Pertanto, se apporti una modifica al file index.html, questo si sincronizza automaticamente con il container e si riflette quando ricarichi la pagina nel browser. Puoi provare con l'editor nano. Impariamo altri comandi nel passaggio successivo.

Passo 4: Comandi Docker Compose aggiuntivi per la gestione degli ambienti dei container

Ora che hai distribuito con successo una pagina web utilizzando il singolo comando docker-compose-up, vediamo alcuni comandi aggiuntivi che possono essere utili nella gestione degli ambienti containerizzati.

Inizieremo con il comando logs. I log possono essere cruciali quando si risolvono i problemi di malfunzionamento dell'applicazione. Per prima cosa, esegui il comando seguente per visualizzare i log prodotti dal container Nginx:

Ecco un esempio di output dei log:

 logs

Puoi mettere in pausa l'esecuzione dell'ambiente senza modificare lo stato dei container utilizzando il comando:

 compose pause

Successivamente, per riprendere l'esecuzione utilizza il comando:

docker compose unpause

Potresti voler arrestare i container senza distruggere i loro dati. Per fare ciò, utilizza il comando seguente:

stop

Per distruggere i container, le reti e i volumi associati all'ambiente containerizzato, utilizza il comando:

docker compose down

Tieni presente che il comando precedente non rimuove le immagini di base utilizzate da Docker Compose per avviare l'ambiente. Questo garantisce build più rapide quando avvii il tuo ambiente, poiché controlla la macchina locale alla ricerca di immagini corrispondenti. Se desideri rimuovere completamente l'immagine di base, devi specificarlo nel comando. Per il nostro esempio, possiamo rimuovere l'nginx:alpine immagine usando il comando:

 image remove

Infine, puoi trovare altri comandi nella documentazione ufficiale di Docker Compose Command-line reference.

Conclusione

In questo tutorial, hai installato Docker Compose su Ubuntu 20.04, hai creato un ambiente containerizzato basato su un'immagine del server web Nginx e hai imparato a gestire i vari servizi utilizzando i comandi di Docker Compose.

Se desideri imparare a distribuire un'applicazione dinamica reale che dipende da diversi container, leggi il nostro tutorial su Distribuire Laravel, Nginx e MySQL con Docker Compose. Puoi anche trovare un elenco completo dei comandi docker-compose nella documentazione ufficiale di Docker Compose Docs.

Buon computing!

author

Pranay Kapgate

Autore · CloudSigma

Preslav Dobrev è un designer creativo presso CloudSigma, con un focus su un'identità aziendale coerente attraverso l'uso di canali di marketing tradizionali e innovativi. È abile nel fondere la visione artistica con il marketing strategico per creare narrazioni di brand di grande impatto.

Commenti

Ancora nessun commento. Scrivi il primo.