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

Introduzione a Docker Compose in Linux

Composizione Docker è uno strumento per definire ed eseguire applicazioni docker multi-container in Linux. Con Compose, utilizziamo un file YAML per configurare i servizi della nostra applicazione. E poi creiamo e avviamo tutti i servizi dalla configurazione con un solo comando. Ecco una semplice illustrazione grafica che mostra come funziona Docker Compose.

Come funziona Docker Compose - Un'illustrazione grafica

Docker Compose è fondamentalmente un processo in tre fasi:

  1. In primo luogo, dobbiamo definire l'ambiente dell'applicazione con un Dockerfile in modo che possa essere riutilizzato di nuovo.
  2. In secondo luogo, definiamo i servizi che compongono l'app in docker-compose.yml in modo che possano essere eseguiti insieme in un ambiente isolato.
  3. Infine, eseguiamo docker-compose up command e Compose avvieranno ed eseguiranno l'intera applicazione.

Guida introduttiva a Docker Compose in Linux

Docker Compose può essere installato in due modi. Puoi trovare le istruzioni di installazione nella sezione "Installa Docker Compose" nei seguenti link.

  • Come installare Docker in Ubuntu
  • Come installare Docker in CentOS

Dopo l'installazione, controlla la versione di Docker Compose utilizzando i comandi:

# docker-compose -version

Oppure,

# docker-compose -v

Oppure,

# docker-compose --version

Controlla la versione di composizione della finestra mobile

Per ottenere aiuto, esegui semplicemente:

# docker-compose -help

Questo comando elencherà i comandi che Docker Compose può eseguire.

aiuto per la composizione della finestra mobile

Ora prendiamo come esempio un semplice file di composizione della finestra mobile. Ecco il contenuto del mio file di composizione.

Esempio di file di composizione della finestra mobile

Sopra il file di composizione Docker è un file minimo indispensabile per comprendere il contenuto di base all'interno del file di composizione.

Possiamo verificare la validità del file usando il comando:

# docker-compose config

Verifica la validità del file di composizione della finestra mobile

Se fornisci una versione errata all'interno del file di composizione della finestra mobile, ti verrà visualizzato un messaggio di errore.

Messaggio di errore di composizione del file Docker

Ora eseguiamo il file di composizione usando il comando:

# docker-compose up -d

Inizierà tutti i servizi con un unico comando.

Esegui composizione mobile

Per elencare i contenitori in esecuzione creati da compose file, esegui:

# docker-compose ps

Elenca i contenitori Docker in esecuzione

Possiamo chiudere l'applicazione in qualsiasi momento con il seguente comando:

# docker-compose down

Arresta i contenitori Docker

Possiamo anche assegnare una porta diversa a nginx, ad esempio 8181.

Per fare ciò, basta definire la porta nel file di composizione come mostrato nell'immagine seguente.

Definisci port nginx container

Ora nginx è esposto alla porta 8181. Avviamo il container e controlliamo se Nginx è in esecuzione sulla porta 8181.

Avvia il contenitore nginx

Apri il browser e verifica se è in esecuzione sulla porta 8181.

Testa il contenitore nginx nel browser web

Se vuoi ridimensionare il servizio, puoi farlo usando il comando:

# docker-compose up -d --scale database=3

Ridimensiona i servizi utilizzando la composizione mobile

Per visualizzare i servizi in esecuzione, esegui:

# docker-compose top

Visualizza i servizi in esecuzione utilizzando la composizione mobile

Per fermare, iniziare. riavviare l'intero servizio in una volta, i comandi sarebbero:

# docker-compose stop
# docker-compose start
# docker-compose restart

Possiamo visualizzare i log dei servizi usando il comando:

# docker-compose logs

Mostra i registri dei servizi

Rete in composizione mobile

Docker Compose configura un'unica rete per la tua app per impostazione predefinita. Ogni container si unisce alla rete predefinita e i container potranno comunicare su quella rete predefinita.

Puoi comunque creare una nuova rete usando compose se non vuoi la rete predefinita.

Ai fini di questa guida, utilizzo i seguenti tre file:

  1. File Docker
  2. docker-compose.yml
  3. server.py

Ecco il contenuto di Dockerfile:

contenuto del file docker

Contenuto di docker-compose.yml:

Docker compone il contenuto del file

Contenuto di server.py:

contenuto del file dell'applicazione

Ora costruisci l'immagine usando il comando:

# docker-compose build

Una volta completata la compilazione, vedrai il seguente output:

Crea immagine Docker

Come puoi vedere, l'immagine è stata creata correttamente. Puoi verificarlo usando il comando:

# docker images

Elenca le immagini della finestra mobile

Come puoi vedere nell'output sopra, un'immagine Docker denominata image1 viene creato.

Ora esegui il file di composizione:

# docker-compose up -d

Esegui il file di composizione della finestra mobile

Verifica se la nuova rete è stata creata o meno con il comando:

# docker network ls

Controlla la rete docking

Dallo screenshot sopra, possiamo confermare una nuova rete denominata dc_network_my-network è stato creato.

Verifichiamo se il container è in esecuzione o meno utilizzando il comando "docker ps":

# docker ps

output del comando docker ps

Sì, il container è in esecuzione!

Infine, esegui il file del codice dell'applicazione (server.py) usando il comando curl:

# curl localhost:15001

Oppure,

# curl 10.26.35.244:15001

output dell'applicazione

Stiamo ricevendo un output:Hello World dal nodo 1! che è scritto nel file server.py. Significa che funziona!

Lettura consigliata:

  • Spiegazione dei concetti di rete Docker
  • Spiegare i volumi Docker con esempi
  • Come aggiornare automaticamente i contenitori Docker in esecuzione
  • ctop – Uno strumento di monitoraggio della riga di comando per i container Linux
  • Portainer:il modo più semplice per gestire Docker
  • PiCluster:una semplice applicazione di gestione Docker basata sul Web
  • Dockly:gestisci i container Docker dal terminale

Informazioni sull'autore:

Dhruv Tiwari è un ingegnere DevOps che ama automatizzare le cose, lavorare con Linux su larga scala e sognare il giorno in cui i sistemi saranno abbastanza intelligenti da non dover mai accedere a una macchina Linux. Viaggio di CI/CD dal codice sorgente alla distribuzione del codice alla produzione.


Docker
  1. Introduzione ai firewall Linux

  2. Iniziare con il comando tac di Linux

  3. Iniziare con PiFlash:avviare il tuo Raspberry Pi su Linux

  4. Iniziare con PostgreSQL su Linux

  5. Introduzione a SSH in Linux

Introduzione al sistema operativo Linux

Tutorial Docker – Introduzione a Docker in Linux

Tutorial Vagrant – Introduzione a Vagrant in Linux

Introduzione a VirtualBox in Linux – Parte 1

Introduzione a Flutter su desktop Linux

Introduzione all'esercitazione Docker di Azure