GNU/Linux >> Linux Esercitazione >  >> Panels >> Docker

Che cos'è Docker Compose e come lo usi?

Docker Compose è uno strumento che puoi utilizzare per gestire centralmente le distribuzioni di molti contenitori Docker diversi. È uno strumento importante per qualsiasi applicazione che necessita di più microservizi, poiché consente a ciascun servizio di trovarsi facilmente in un contenitore gestito separatamente.

Cosa fa Docker Compose?

I contenitori Docker vengono utilizzati per l'esecuzione di applicazioni in un ambiente isolato. Al giorno d'oggi è abbastanza comune vedere implementazioni di applicazioni eseguite in Docker per i numerosi vantaggi che offre. Tuttavia, spesso non è così semplice come eseguire un singolo container. Di solito potresti avere molti container che si uniscono per agire come un servizio coeso composto da molte parti mobili.

Gestire tutto ciò al momento della distribuzione è complicato, quindi per ripulirlo Docker fornisce Docker Compose, uno strumento di configurazione utilizzato per eseguire più contenitori contemporaneamente. Puoi definire tutta la configurazione in un file YAML e quindi avviare tutti i contenitori con un comando.

Invece di avere tutti i tuoi servizi in un unico grande contenitore, Docker Compose ti consente di dividerli in contenitori gestibili individualmente. Questo è meglio sia per la creazione che per la distribuzione, poiché puoi gestirli tutti in basi di codice separate e non è necessario avviare manualmente ogni singolo contenitore.

L'utilizzo di Docker Compose è un processo in tre fasi:

  • Costruisci le immagini dei componenti utilizzando i relativi Dockerfile o estraili da un registro.
  • Definisci tutti i servizi dei componenti in un docker-compose.yml file.
  • Eseguili tutti insieme usando docker-compose CLI.

Docker Compose non è un altro tipo di Dockerfile. Dovrai comunque creare e pubblicare i tuoi contenitori Docker utilizzando un Dockerfile. Ma, invece di eseguirli direttamente, puoi utilizzare Docker Compose per gestire la configurazione di una distribuzione multi-container.

Come usi Docker Compose?

La configurazione per un file di composizione docker viene eseguita in docker-compose.yml . Non è necessario inserirlo nella radice del progetto come un Dockerfile. In effetti, può andare ovunque, poiché non dipende da nessun altro codice. Tuttavia, se stai creando le immagini in locale, dovrà andare in una cartella del progetto con il codice in fase di creazione.

Un file di configurazione di Compose avrà un aspetto simile al seguente. Questa configurazione esegue un'istanza di WordPress utilizzando wordpress contenitore dall'hub Docker. Tuttavia, questo dipende da un database MySQL, anch'esso creato da Compose.

version: '3'

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: rootpasswordchangeme
       MYSQL_DATABASE: wordpress
       MYSQL_USER: usernamechangeme
       MYSQL_PASSWORD: passwordchangeme

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: usernamechangeme
       WORDPRESS_DB_PASSWORD: passwordchangeme
volumes:
    db_data:

Diamo un'occhiata al formato di questo file. Innanzitutto, un numero di versione, poiché la sintassi può cambiare a seconda della versione in uso.

Quindi un elenco di servizi. Il primo si chiama "db" e utilizza mysql:5.7 container, impostato per riavviare sempre, e con variabili di ambiente per configurare il database con un utente e una password. Per mantenere i dati durante i riavvii, questa immagine è configurata con un volume Docker montato nella directory dei dati di MySQL.

L'altro servizio è "wordpress", che dipende dal servizio di database, assicurando che Docker si assicuri che il database sia avviato prima dell'esecuzione. Espone la porta 80 come porta 8000 e imposta alcune variabili di ambiente in modo che possa connettersi a MySQL. Nota che l'host per il database è impostato su db:3306 , che indica al contenitore di WordPress di connettersi al servizio "db".

Infine, i volumi sono definiti per l'archiviazione persistente. Facoltativamente, puoi anche definire una rete personalizzata per i contenitori. Ci sono molte opzioni estese che puoi configurare, quindi se stai cercando di fare qualcosa di specifico, dovresti controllare la documentazione per Docker Compose.

Una volta configurato, avviare questo servizio è facile. Esegui semplicemente docker-compose up , che estrarrà tutti i contenitori richiesti e avvierà i tuoi servizi.

docker-compose up -d

E dovresti vedere i servizi in esecuzione sul sistema con docker ps . In questo caso, vedrai WordPress attivo e funzionante correttamente.

RELAZIONATO: Come installare Docker e Docker Compose su Linux

Costruire con Docker Compose

Docker Compose può essere utilizzato anche all'interno di un progetto Dockerfile e può essere configurato per creare ed eseguire un'immagine in locale anziché eseguire il pull da Docker Hub.

Per farlo, devi semplicemente aggiungere un build sezione sul servizio. Puoi impostare diverse directory di contesto, nonché diversi Dockerfile per immagini diverse.

version: "3.8"
services:
  webapp:
    build:
      context: ./dir
      dockerfile: Dockerfile-alternate
    image: imagename:tag

In questo caso, l'image: viene impostata anche la variabile, ma qui viene utilizzata per contrassegnare l'immagine creata da Docker Compose.


Docker
  1. Cos'è Umask e come usarlo

  2. Come usare Docker Compose

  3. Cosa sono i volumi Docker e come li usi?

  4. Come e perché utilizzare un host Docker remoto

  5. Come installare e utilizzare Docker Compose su CentOS

Come installare e utilizzare Docker Compose su Ubuntu 20.04

Come installare e utilizzare Docker Compose su Ubuntu 22.04

Come installare e utilizzare Docker su Ubuntu 22.04

Come installare Docker e Docker Compose su Linux

Come installare e utilizzare Docker su Ubuntu 20.04

Come installare e utilizzare Docker Compose su Debian 11