[Gulli] Gestione dei container docker tramite docker-compose

alex9446 alex9446@gmail.com
Mar 4 Ago 2020 08:00:00 CEST


Buongiorno a tutti,
di seguito vi illustrerò come è stato utilizzato lo strumento
docker-compose per la configurazione di un servizio attualmente attivo sul
server dell'associazione.

Innanzitutto per utilizzare lo strumento docker-compose dovremo creare un
nuovo file con nome *docker-compose.yml*, vi consiglio di creare il file in
una cartella vuota e utilizzarla soltanto per le risorse inerenti la
configurazione.

L'esempio seguente è la configurazione del sevizio nextcloud, le altre
configurazioni sono disponibili nel repository gitlab dedicato:
https://gitlab.com/G.U.L.Li/servizi-docker-compose

version: '3'

services:
  nextcloud:
    image: nextcloud:18.0.6
    restart: unless-stopped
    networks:
      - traefik_net
    volumes:
      - ./var_www_html:/var/www/html
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.nextcloud.rule=Host(`
nextcloud.linux.livorno.it`)"
      - "traefik.http.routers.nextcloud.entrypoints=websecure"
      - "traefik.http.routers.nextcloud.tls.certresolver=myresolver"

networks:
  traefik_net:
    external: true


Con *version* definiamo la versione del file docker-compose.yml, dentro
*networks* attiviamo una rete 'esterna' già presente in docker e la
rendiamo disponibile ai servizi (punto successivo).
Con *services* definiamo i servizi, in questo caso ne utilizziamo soltanto
uno (nextcloud):

   - *images* definisce l'immagine da utilizzare come base del container e
   con il valore che segue i due punti specifichiamo la release, la release di
   default altrimenti sarà *latest*
   - *restart* con il valore unless-stopped riavvierà il container a meno
   che l'arresto del container non sia dovuto ad un'azione manuale dell'utente
   - *networks* definisce la rete a cui sarà connesso il container
   - *volumes* indica una cartella presente nell'host da collegare ad una
   cartella del container, in questo caso la cartella *var_www_html* è
   presente nella stessa cartella del file docker-compose.yml e contiene i
   dati e le preferenze degli utenti del servizio nextcloud
   - Infine le *label* indicano a traefik le istruzioni di reverse proxy
   per il collegamento al servizio nextcloud, approfondirò con un'altra mail


Quando saremo soddisfatti della configurazione di prova dei servizi
procediamo con l'avviamento, per gestire i servizi utilizzeremo il comando
docker-compose con differenti opzioni.
Le opzioni che più ho utilizzato sono queste tre:

   - *docker-compose up -d*, crea/aggiorna i container dei servizi presenti
   nella configurazione, con *-d* non saremo collegati al logging dei
   container quando saranno avviati
   - *docker-compose logs -f --tail=all*, verremo collegati al logging dei
   container (se avviati)
   - *docker-compose down --volumes*, ferma e rimuove i container dei
   servizi presenti nella configurazione, con *--volumes* verranno
   eliminati anche i volumi collegati ai container


Buona sperimentazione!
Alessio
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.linux.it/pipermail/gulli/attachments/20200804/f0978882/attachment.htm>


Maggiori informazioni sulla lista Gulli