Architettura Docker e suoi componenti per principianti

Familiarizziamo con l’architettura Docker e i suoi componenti essenziali.


Presumo che tu abbia una conoscenza di base di Docker. In caso contrario, puoi fare riferimento all’articolo precedente.

Comprensione di Docker per principianti: la tecnologia container

Credo che tu capisca l’importanza Docker in DevOps. Ora dietro questo fantastico strumento deve esserci un’architettura straordinaria e ben ponderata. No?

Ma prima di parlarne, vorrei mostrare il sistema di virtualizzazione precedente e corrente.

Virtualizzazione tradizionale e di nuova generazione

In precedenza, creavamo macchine virtuali e ogni VM aveva un sistema operativo che occupava molto spazio e lo rendeva pesante.

Ora, nel caso del contenitore docker, hai un singolo sistema operativo e le risorse sono condivise tra i contenitori. Quindi è leggero e si avvia in pochi secondi.

Tradizionale vs New Gen

Architettura Docker

Di seguito è riportato il semplice diagramma di un’architettura Docker.

Architettura Docker

Lascia che ti spieghi i componenti di un’architettura docker.

Motore Docker

È la parte principale dell’intero sistema Docker. Docker Engine è un’applicazione che segue architettura client-server. È installato sul computer host. Esistono tre componenti nel motore Docker:

  • server: È il demone docker chiamato dockerd. Può creare e gestire immagini docker. Contenitori, reti, ecc.
  • API di riposo: Viene utilizzato per istruire il demone docker su cosa fare.
  • Command Line Interface (CLI): È un client utilizzato per immettere i comandi docker.

Docker Client

Gli utenti Docker possono interagire con Docker tramite un client. Quando vengono eseguiti comandi docker, il client li invia al demone dockerd, che li esegue. L’API Docker viene utilizzata dai comandi Docker. Il client Docker può comunicare con più di un demone.

Registri Docker

È la posizione in cui sono memorizzate le immagini Docker. Può essere un registro docker pubblico o un registro docker privato. Docker Hub è il luogo predefinito delle immagini docker, il registro pubblico dei suoi negozi. Puoi anche creare ed eseguire il tuo registro privato.

Quando si eseguono i comandi pull docker o docker run, l’immagine docker richiesta viene estratta dal registro configurato. Quando si esegue il comando push della finestra mobile, l’immagine della finestra mobile viene archiviata nel registro configurato.

Oggetti Docker

Quando lavori con Docker, usi immagini, contenitori, volumi, reti; tutti questi sono oggetti Docker.

immagini

Le immagini della finestra mobile sono modelli di sola lettura con le istruzioni per creare un contenitore finestra mobile. L’immagine Docker può essere estratta da un hub Docker e utilizzata così com’è, oppure è possibile aggiungere ulteriori istruzioni all’immagine base e creare un’immagine docker nuova e modificata. Puoi creare le tue immagini docker anche usando un file docker. Crea un file docker con tutte le istruzioni per creare un contenitore ed eseguirlo; creerà la tua immagine docker personalizzata.

L’immagine Docker ha un livello base di sola lettura e il livello superiore può essere scritto. Quando modifichi un file docker e lo ricostruisci, nel livello superiore viene ricostruita solo la parte modificata.

contenitori

Dopo aver eseguito un’immagine finestra mobile, crea un contenitore finestra mobile. Tutte le applicazioni e il loro ambiente vengono eseguiti all’interno di questo contenitore. È possibile utilizzare l’API Docker o l’interfaccia della riga di comando per avviare, arrestare, eliminare un contenitore docker.

Di seguito è riportato un comando di esempio per eseguire un contenitore finestra mobile Ubuntu:

docker run -i -t ubuntu / bin / bash

volumi

I dati persistenti generati dalla finestra mobile e utilizzati dai contenitori Docker vengono archiviati in Volumi. Sono completamente gestiti da docker tramite CLI docker o API Docker. I volumi funzionano sia su contenitori Windows che Linux. Piuttosto che conservare i dati nel livello scrivibile di un contenitore, è sempre una buona opzione usare i volumi per esso. Il contenuto del volume esiste al di fuori del ciclo di vita di un contenitore, quindi l’utilizzo del volume non aumenta le dimensioni di un contenitore.

È possibile utilizzare -v o –mount flag per avviare un contenitore con un volume. In questo comando di esempio, si sta utilizzando il volume geekvolume con il contenitore geekflare.

docker run -d –name geekflare -v geekvolume: / app nginx: ultimo

reti

La rete docker è un passaggio attraverso il quale comunicano tutti i container isolati. Esistono principalmente cinque driver di rete nella finestra mobile:

  1. ponte: È il driver di rete predefinito per un contenitore. Questa rete viene utilizzata quando l’applicazione è in esecuzione su contenitori autonomi, ovvero più contenitori che comunicano con lo stesso host docker.
  2. Ospite: Questo driver rimuove l’isolamento di rete tra i contenitori docker e l’host docker. Viene utilizzato quando non è necessario alcun isolamento di rete tra host e container.
  3. copertura: Questa rete consente ai servizi di sciame di comunicare tra loro. Viene utilizzato quando i contenitori sono in esecuzione su host Docker diversi o quando i servizi di sciame sono formati da più applicazioni.
  4. Nessuna: Questo driver disabilita tutta la rete.
  5. macvlan: Questo driver assegna l’indirizzo mac ai contenitori per farli sembrare dispositivi fisici. Il traffico viene instradato tra i contenitori attraverso i loro indirizzi mac. Questa rete viene utilizzata quando si desidera che i contenitori appaiano come un dispositivo fisico, ad esempio, durante la migrazione di un’installazione VM.

Conclusione

Spero che questo ti dia un’idea dell’architettura Docker e dei suoi componenti essenziali. Naviga in Docker per saperne di più e se sei interessato a ricevere una formazione pratica, dai un’occhiata a questo Corso di padronanza Docker.

TAGS:

  • docker

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map