Introduzione

Docker Compose è uno strumento da riga di comando che consente di definire e orchestrare applicazioni Docker multi-container. Utilizza un file YAML per configurare servizi, reti e volumi dell'applicazione.

Con Compose, puoi definire un ambiente di applicazione portatile che puoi eseguire su qualsiasi sistema. Gli ambienti di composizione sono isolati l'uno dall'altro, consentendo di eseguire più copie dello stesso ambiente su un singolo host.

Compose viene in genere utilizzato per lo sviluppo locale, distribuzioni di applicazioni per host singolo e test automatizzati.

Questo articolo spiega come installare l'ultima versione di Docker Compose su Ubuntu 20.04 LTS Focal Fossa. Esploreremo anche i concetti e i comandi base di Docker Compose.

Prerequisiti

Supponiamo che tu abbia Docker installato sul tuo computer Ubuntu 20.04 LTS, in caso contrario leggere il seguente tutorial: Come installare e configurare Docker su Ubuntu 20.04 LTS.

Prima di continuare con questo tutorial è necessario rispettare i seguenti prerequisiti:

Se desideri installare Docker Compose su un server in remoto continua a leggere, altrimenti salta il primo paragrafo "Connessione al Server" e leggi il successivo.

Connessione al Server

Per accedere al server, è necessario conoscere l'indirizzo IP. Avrai anche bisogno dell'username e della password per l'autenticazione. Per connettersi al server come utente root digitare il seguente comando:

ssh [email protected]_DEL_SERVER

Successivamente sarà necessario inserire la password dell'utente root.

Se non utilizzate l'utente root potete connettervi con un'altro nome utente utilizzando lo stesso comando, quindi modificare root con il vostro nome_utente:

ssh [email protected]_DEL_SERVER

Successivamente vi verrà chiesto di inserire la password del vostro utente.

La porta standard per connettersi tramite ssh è la 22, se il vostro server utilizza una porta diversa, sarà necessario specificarla utilizzando il parametro -p, quindi digitare il seguente comando:

ssh [email protected]_DEL_SERVER -p PORTA

Installare Docker Compose

Docker Compose è un singolo file binario. L'installazione è semplice. Scaricheremo il file in una directory che si trova nel PATH sistema e lo renderemo eseguibile.

Il pacchetto Docker Compose è disponibile nei repository ufficiali Ubuntu 20.04 LTS, ma potrebbe non essere sempre l'ultima versione.

Al momento della stesura di questo articolo, è l'ultima versione stabile di Docker Compose è la 1.25.5. Prima di scaricare il binario Compose, visitare la pagina di rilascio del repository Compose su GitHub e verificare se è disponibile una nuova versione per il download.

Utilizzare curl per scaricare il file Compose nella directory /usr/local/bin:

sudo curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

Una volta completato il download, applica le autorizzazioni eseguibili al file:

sudo chmod +x /usr/local/bin/docker-compose

Per verificare che l'installazione abbia avuto esito positivo, eseguire il comando seguente che stamperà la versione di Compose:

docker-compose --version

L'output sarà simile al seguente:

docker-compose version 1.25.5, build 8a1c60f6

Questo è tutto! Docker Compose è stato installato sul tuo computer Ubuntu e puoi iniziare a usarlo.

Introduzione a Docker Compose

In questa sezione, utilizzeremo Docker Compose per creare un'applicazione WordPress multi-contenitore

Il primo passo è creare una directory di progetto con il comando mkdir:

mkdir my_app

Entrare nella cartella appena creata con il comando cd:

cd my_app

Apri il tuo editor di testo e crea un file chiamato docker-compose.yml all'interno della directory del progetto:

nano docker-compose.yml

Incolla il seguente contenuto:

version: '3'

services:
  db:
    image: mysql:5.7
    restart: always
    volumes:
      - db_data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: wordpress

  wordpress:
    image: wordpress
    restart: always
    volumes:
      - ./wp_data:/var/www/html
    ports:
      - "8080:80"
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_NAME: wordpress
      WORDPRESS_DB_USER: root
      WORDPRESS_DB_PASSWORD: password
    depends_on:
       - db

volumes:
    db_data:
    wp_data:
docker-compose.yml

Analizziamo la struttura del file docker-compose.yml.

La prima riga del file specifica la versione del file Compose. Esistono diverse versioni del formato file Compose con supporto per specifiche versioni Docker.

Successivamente, si definiscono servizi, volumi e reti.

In questo esempio, abbiamo servizi db e wordpress. Ogni servizio esegue un'immagine e crea un contenitore separato quando viene eseguita la composizione docker.

I servizi possono utilizzare immagini disponibili su DockerHub o immagini create dal Dockerfile. La sezione di servizio include anche chiavi che specificano porte, volumi, variabili di ambiente, dipendenze e altri comandi Docker esposti

Dalla directory del progetto, avvia l'applicazione WordPress eseguendo il comando seguente:

docker-compose up

Compose estrae le immagini, avvia i contenitori e crea la directory wp_data.

Entra http://TUO_INDIRIZZO_IP:8080/ nel tuo browser e vedrai la schermata di installazione di Wordpress. A questo punto, l'applicazione Wordpress è attiva e puoi iniziare a lavorare sul tuo tema o plugin.

Per interrompere la composizione, premere CTRL+C.

Puoi anche avviare la composizione in detached mode (in background) passando l'opzione -d:

docker-compose up -d

Per verificare i servizi in esecuzione utilizzare l'opzione ps:

docker-compose ps
       Name                     Command               State          Ports
----------------------------------------------------------------------------------
my_app_db_1          docker-entrypoint.sh mysqld      Up      3306/tcp, 33060/tcp
my_app_wordpress_1   docker-entrypoint.sh apach ...   Up      0.0.0.0:8080->80/tcp

Quando Compose è in esecuzione in detached mode per interrompere i servizi, eseguire:

docker-compose stop

Per interrompere e rimuovere i contenitori e le reti dell'applicazione, utilizzare l'opzione down:

docker-compose down

Disinstallare Docker Compose

Per disinstallare Docker Compose, è sufficiente rimuovere il file binario digitando:

sudo rm /usr/local/bin/docker-compose

Conclusione

Ti abbiamo mostrato come installare Docker Compose su Ubuntu 20.04 LTS Focal Fossa. L'uso di Docker Compose può migliorare significativamente il flusso di lavoro e la produttività. Puoi definire il tuo ambiente di sviluppo con Docker Compose e condividerlo con i collaboratori del progetto.