Introduzione
Docker è una piattaforma di containerizzazione che consente di creare, testare e distribuire rapidamente applicazioni come container portatili e autosufficienti che possono essere eseguiti praticamente ovunque.
Docker Compose è uno strumento che consente di definire e orchestrare applicazioni Docker multi-container. Utilizza un file YAML per configurare i contenitori, le reti e i volumi dell'applicazione.
Componi può essere utilizzato per vari scopi. Distribuzioni di applicazioni host singolo, test automatizzati e sviluppo locale sono i casi d'uso più popolari per Docker Compose.
Questo tutorial spiega come installare l'ultima versione di Docker Compose su Debian 10, Buster. Esploreremo anche i concetti e i comandi base di Docker Compose.
Prerequisiti
Prima di procedere, assicurarsi di aver soddisfatto i seguenti prerequisiti:
- Accesso effettuato come utente con privilegi sudo.
- Docker installato sul Debian 10.
Se il vostro intento è installare il Docker Compose su di un server in remoto continuate a leggere, altrimenti saltate il primo paragrafo "Connessione al Server" e leggere 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 root@IP_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 nome_utente@IP_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 nome_utente@IP_DEL_SERVER -p PORTA
Installare Docker Compose su Debian 10
Il pacchetto di installazione di Docker Compose è disponibile nei repository ufficiali di Debian 10, ma potrebbe non essere sempre la versione più recente. L'approccio consigliato è installare Docker Compose dal repository GitHub di Docker.
Al momento della stesura di questo articolo, l'ultima versione stabile di Docker Compose è la versione 1.25.0
. 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.
Usare i seguenti passi per installare l'ultima versione di Docker Compose su Debian 10:
Scarica il Docker Compose binary nella directory /usr/local/bin
con wget
o curl
:
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Utilizzare chmod
per rendere eseguibile binario Compose:
sudo chmod +x /usr/local/bin/docker-compose
Per verificare l'installazione, utilizzare il seguente comando che stampa la versione di Compose:
docker-compose --version
L'output sarà simile al seguente:
docker-compose version 1.25.0, build 0a186604
Introduzione a Docker Compose
In questa sezione, mostreremo come impostare un ambiente di sviluppo WordPress locale con Docker Compose.
Crea una directory per il progetto e naviga al suo interno :
mkdir wordpress_app && cd wordpress_app
Apri il tuo editor di testo e crea un file chiamato docker-compose.yml
:
nano docker-compose.yml
Incolla il seguente contenuto:
version: '3.7'
services:
db:
image: mysql:8.0
command: --default-authentication-plugin=mysql_native_password
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:
Spieghiamo il codice riga per riga
La prima riga specifica la versione del file Compose . Esistono diverse versioni del formato file Compose con supporto per specifiche versioni Docker.
Successivamente, stiamo definendo due servizi db
e wordpress
. Ogni servizio crea un contenitore separato quando viene eseguita Docker Compose.
Il servizio db
:
- L'immagine è impostata su
mysql:8.0
immagine. Se l'immagine non è presente, Compose la estrarrà dal repository pubblico Docker Hub. La riga che inizia concommand
sostituisce il comando predefinito. - Il criterio
restart: always
indica a Compose di riavviare il contenitore se si interrompe. - Il contenitore utilizzerà un volume denominato
db_data
per rendere persistente il database. - Definisce le variabili di ambiente per l'immagine
mysql:8.0
.
Il servizio wordpress
:
- Usa l'immagine
wordpress
. - Monta la directory
wp_data
sull'host per/var/lib/mysql
all'interno del contenitore. - Inoltra la porta esposta
80
sul contenitore alla porta8080
sul computer host. - Definisce le variabili di ambiente per l'immagine
wordpress
. - L'istruzione
depends_on
definisce la dipendenza tra i due servizi. In questo esempio,db
verrà avviato prima diwordpress
.
Dalla directory del progetto, avviare lo stack di WordPress eseguendo il comando seguente:
docker-compose up
L'output dovrebbe assomigliare a questo:
...
] /usr/sbin/mysqld: ready for connections. Version: '8.0.18' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server - GPL.
db_1_77746359ac9c | 2019-12-13T20:31:22.109255Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: '/var/run/mysqld/mysqlx.sock' bind-address: '::' port: 33060
...
Docker Compose estrae le immagini, avvia i contenitori e crea la directory wp_data
nella directory del progetto.
Apri il browser e vai su http://0.0.0.0:8080/
, vedrai la schermata di installazione standard di WordPress.
A questo punto, l'applicazione WordPress è attiva e puoi iniziare a lavorarci.
Per interrompere il compose, premere CTRL+C
.
È inoltre possibile avviare il compose in una modalità distaccata utilizzando l'opzione -d
:
docker-compose up -d
Per visualizzare i contenitori della finestra mobile in esecuzione utilizzare il comando seguente:
docker-compose ps
Name Command State Ports
------------------------------------------------------------------------------------------------------
wordpress_app_db_1_77746359ac9c docker-entrypoint.sh --def ... Up 3306/tcp, 33060/tcp
wordpress_app_wordpress_1_a428d8408817 docker-entrypoint.sh apach ... Up 0.0.0.0:8080->80/tcp
Per interrompere i servizi quando Compose è in esecuzione in modalità indipendente, utilizzare:
docker-compose stop
Se si desidera rimuovere completamente i contenitori, utilizzare l'opzione down
:
docker-compose down
Passare il parametro switch --volumes
, rimuove anche i volumi di dati:
docker-compose down --volumes
Disinstaare Docker Compose
Se devi disinstallare Docker Compose puoi semplicemente rimuovere il file binario digitando:
sudo rm /usr/local/bin/docker-compose
Conclusione
Per installare Docker Compose su Debian 10, è sufficiente scaricare il binario in una directory nel percorso di sistema e renderlo eseguibile.