Translate

giovedì 19 ottobre 2023

Passare a DOCKER COMPOSE

Come spiegato nella scheda dedicata a cos’è e a cosa serve Docker Compose, questo tool permette di evitare di utilizzare un comando strutturato come quello sopra spiegato (o più d’uno), cosa utile per diversi motivi che non staremo a ripetere.

Va da sé che, volendo istanziare una nuova app Docker, più che del comando ci interessi il codice YAML corrispondente da aggiungere alla configurazione di Docker Compose. Tale codice recepisce le caratteristiche del comando di lancio manuale.

Dopo aver facilmente installato Docker Compose sullo stesso host ospitante Docker, la prima cosa da fare è definire dunque un file docker-compose.yaml.

Successivamente all’installazione del tool va creata una directory qualunque nel quale ospitare tale file (l’esempio che segue è dedicato al mondo Raspberry Pi OS/Raspberry Pi o genericamente Linux, ma su ambienti Windows o altro è possibile fare la stessa cosa semplicemente creando una cartella dentro la quale poi creare il file):

mkdir -p /home/pi/homeassistant
cd /home/pi/homeassistant
nano /home/pi/
homeassistant/docker-compose.yaml
 
copiamo dunque nell’editor che si aprirà il seguente codice:

version: '3'
services:
  home-assistant:
    container_name: home-assistant
    image: homeassistant/raspberrypi4-homeassistant:stable
    volumes:
    - /home/homeassistant/.homeassistant:/config
    environment:
    - TZ=Europe/Rome
    network_mode: host
    restart: always

 Al termine, uscire salvando (CTRL+X, Y, invio).

Ciò che abbiamo creato è il corrispettivo YAML per Docker Compose del comando di lancio Docker di cui sopra.

 AVVIARE LO STACK

A questo punto, invece di eseguire i comandi manuali che istanzierebbero i due container, è sufficiente eseguire lo stack del quale abbiamo informato Docker Compose tramite il file YAML.

Per eseguirlo, il comando da ricordare è uno e piuttosto semplice. Eseguendolo dall’interno della stessa cartella nel quale è presente il file docker-compose.yaml (il che lascia intuire che, volendo, si potrebbero definire più stack autonomi e indipendenti), il comando è:

docker compose up -d

L’opzione “up” permetterà di creare l’immagine e tirare su il/i servizi, mentre “-d” indicherà di far partire il tutto in background (detached).

Finito!
Docker Compose provvederà a far tutto da sé in base a quanto indicato nel file di configurazione YAML.

GESTIONE ORDINARIA

Nel caso in cui si voglia aggiornare un container in esecuzione scaricando l’ultima immagine disponibile, sarà necessario digitare i seguenti comandi:

docker compose pull home-assistant
docker compose up -d home-assistant

docker compose pull home-assistant
docker compose up --build -d home-assistant 

Infine, per rimuovere eventuali immagini datate e non più utilizzate per alcun container, il comando è:

docker image prune -fa

docker image prune -f

Va da sé che questo tipo di gestione semplifichi enormemente la gestione dei container Docker: anche solo banalmente il solo aggiornamento di un container a fronte della disponibilità di una nuova immagine è estremamente semplificato, perché non è necessario ricordare l’intero comando Docker per l’esecuzione del container, ma è bensì sufficiente utilizzare i comandi (ben più astratti e semplici) sopra elencati.

Nessun commento:

Posta un commento