Tutorial Docker - Introduzione a Docker e containerizzazione



In questo tutorial Docker, capirai la necessità dietro Docker e riceverai un'introduzione a Docker. È il primo blog della serie di tutorial Docker

Spero che non ti sia perso la serie di precedenti blog di tutorial DevOps. Passa attraverso il Qui.La tendenza incontenibile dei container Docker è in crescita e le organizzazioni sono alla ricerca di professionisti in possesso .Questa volta, ti guideremo attraverso un'introduzione a Docker.

Tutorial Docker

Questo blog Tutorial Docker ti fornirà l'esposizione concettuale e pratica a Docker, una tecnologia di containerizzazione della nuova era.





In questo blog, ci concentreremo sui seguenti argomenti:

  • Cos'è la virtualizzazione?
  • Cos'è la containerizzazione
  • Vantaggi della containerizzazione rispetto alla virtualizzazione
  • Introduzione a Docker
  • Vantaggi di Docker
  • Virtualizzazione vs containerizzazione
  • Installazione Docker
  • Dockerfile, Docker Image e Docker Container
  • Cos'è Docker Hub?
  • Architettura Docker
  • Docker Compose

Docker sta guadagnando popolarità e il suo utilizzo si sta diffondendo a macchia d'olio. Il motivo della crescente popolarità di Docker è la misura in cui può essere utilizzato in un'organizzazione IT. Pochissimi strumenti disponibili hanno la funzionalità per trovarsi utili sia per gli sviluppatori che per gli amministratori di sistema. Docker è uno di questi strumenti che è davvero all'altezza delle sue promesse Costruire , Nave e Correre .



In parole semplici, Docker è una piattaforma di containerizzazione del software, il che significa che puoi creare la tua applicazione, impacchettarla insieme alle loro dipendenze in un contenitore e quindi questi contenitori possono essere facilmente spediti per essere eseguiti su altre macchine.

Per esempio: Consideriamo un'applicazione basata su Linux che è stata scritta sia in Ruby che in Python. Questa applicazione richiede una versione specifica di Linux, Ruby e Python. Al fine di evitare qualsiasi conflitto di versione da parte dell'utente, è possibile creare un container docker Linux con le versioni richieste di Ruby e Python installate insieme all'applicazione. Ora gli utenti finali possono utilizzare facilmente l'applicazione eseguendo questo contenitore senza preoccuparsi delle dipendenze o di eventuali conflitti di versione.

Questi contenitori utilizzano la containerizzazione, che può essere considerata una versione evoluta della virtualizzazione. Lo stesso compito può essere ottenuto anche utilizzando macchine virtuali, tuttavia non è molto efficiente.



Generalmente ricevo una domanda a questo punto, ovvero qual è la differenza tra virtualizzazione e containerizzazione? Questi due termini sono molto simili tra loro. Quindi, lascia che ti dica prima cosa è la virtualizzazione?

Cos'è la virtualizzazione?

La virtualizzazione è la tecnica per importare un sistema operativo Guest su un sistema operativo Host. Questa tecnica è stata una rivelazione all'inizio perché ha permesso agli sviluppatori di eseguire più sistemi operativi in ​​diverse macchine virtuali in esecuzione sullo stesso host. Ciò ha eliminato la necessità di risorse hardware aggiuntive. I vantaggi delle macchine virtuali o della virtualizzazione sono:

  • Più sistemi operativi possono essere eseguiti sulla stessa macchina
  • La manutenzione e il ripristino sono stati facili in caso di condizioni di guasto
  • Anche il costo totale di proprietà è stato inferiore a causa della ridotta necessità di infrastrutture

Architettura della macchina virtuale - Tutorial Docker sull

Nel diagramma a destra, puoi vedere che c'è un sistema operativo host su cui sono in esecuzione 3 sistemi operativi guest che non è altro che le macchine virtuali.

Come sai nulla è perfetto, la virtualizzazione ha anche alcuni difetti. L'esecuzione di più macchine virtuali nello stesso sistema operativo host porta a una riduzione delle prestazioni. Ciò è dovuto al sistema operativo guest in esecuzione sul sistema operativo host, che avrà il proprio kernel e un insieme di librerie e dipendenze. Ciò occupa una grande porzione di risorse di sistema, ad es. Disco rigido, processore e soprattutto RAM.

Un altro problema con le macchine virtuali che utilizzano la virtualizzazione è che richiede quasi un minuto per l'avvio.Questo è molto critico in caso di applicazioni in tempo reale.

Di seguito sono riportati gli svantaggi della virtualizzazione:

  • L'esecuzione di più macchine virtuali porta a prestazioni instabili
  • Gli hypervisor non sono efficienti come il sistema operativo host
  • Il processo di avvio è lungo e richiede tempo

Questi inconvenienti hanno portato alla nascita di una nuova tecnica chiamata containerizzazione. Ora lascia che ti parli della containerizzazione.

Cos'è la containerizzazione?

La containerizzazione è la tecnica per portare la virtualizzazione a livello di sistema operativo. Mentre la virtualizzazione porta l'astrazione all'hardware, la containerizzazione porta l'astrazione al sistema operativo. Tieni presente che la containerizzazione è anche un tipo di virtualizzazione. La containerizzazione è tuttavia più efficiente perché non c'è un SO guest qui e utilizza il sistema operativo di un host, condivide le librerie e le risorse pertinenti come e quando necessario, a differenza delle macchine virtuali. I binari specifici dell'applicazione e le librerie dei contenitori vengono eseguiti sul kernel host, il che rende l'elaborazione e l'esecuzione molto veloci. Anche l'avvio di un container richiede solo una frazione di secondo. Poiché tutti i contenitori condividono, ospitano il sistema operativo e contengono solo i file binari e le librerie relativi all'applicazione. Sono leggeri e più veloci delle macchine virtuali.

Vantaggi della containerizzazione rispetto alla virtualizzazione:

  • I contenitori sullo stesso kernel del sistema operativo sono più leggeri e più piccoli
  • Migliore utilizzo delle risorse rispetto alle VM
  • Il processo di avvio è breve e richiede pochi secondi

Nel diagramma a destra, puoi vedere che c'è un sistema operativo host che è condiviso da tutti i contenitori. I contenitori contengono solo librerie specifiche dell'applicazione che sono separate per ogni contenitore, sono più veloci e non sprecano risorse.

Tutti questi contenitori sono gestiti dal livello di containerizzazione che non è nativo del sistema operativo host. Quindi è necessario un software che ti consenta di creare ed eseguire contenitori sul tuo sistema operativo host.

Guarda questo video tutorial su Docker per una comprensione approfondita di Docker.

Tutorial Docker per principianti | Cos'è Docker? | Strumenti DevOps | Edureka

Ora, lascia che ti guidi attraverso l'introduzione a Docker.

Tutorial Docker - Introduzione a Docker

Docker è una piattaforma di containerizzazione che raggruppa la tua applicazione e tutte le sue dipendenze sotto forma di contenitori per garantire che la tua applicazione funzioni perfettamente in qualsiasi ambiente.

Come puoi vedere nel diagramma a destra, ogni applicazione verrà eseguita su un contenitore separato e avrà il proprio set di librerie e dipendenze. Ciò garantisce anche l'isolamento a livello di processo, il che significa che ogni applicazione è indipendente dalle altre applicazioni, dando agli sviluppatori la certezza che possono creare applicazioni che non interferiranno l'una con l'altra.

In qualità di sviluppatore, posso creare un contenitore su cui sono installate diverse applicazioni e darlo al mio team QA che dovrà solo eseguire il contenitore per replicare l'ambiente di sviluppo.

Vantaggi di Docker

Ora, il team di QA non ha bisogno di installare tutto il software e le applicazioni dipendenti per testare il codice e questo li aiuta a risparmiare molto tempo ed energia. Ciò garantisce inoltre che l'ambiente di lavoro sia coerente tra tutti gli individui coinvolti nel processo, a partire dallo sviluppo fino alla distribuzione. Il numero di sistemi può essere scalato facilmente e il codice può essere distribuito su di essi senza sforzo.

Virtualizzazione vs containerizzazione

Sia la virtualizzazione che la containerizzazione consentono di eseguire più sistemi operativi all'interno di una macchina host.

tutorial mysql workbench per principianti

La virtualizzazione si occupa della creazione di molti sistemi operativi in ​​una singola macchina host. La containerizzazione, d'altra parte, creerà più contenitori per ogni tipo di applicazione come richiesto.

Figura: Che cos'è l'analisi dei big data: virtualizzazione e containerizzazione

Come possiamo vedere dall'immagine, la differenza principale è che ci sono più sistemi operativi guest nella virtualizzazione che sono assenti nella containerizzazione. La parte migliore della containerizzazione è che è molto leggera rispetto alla virtualizzazione pesante.

Ora, installiamo Docker.

Installa Docker:

Installerò Docker sulla mia macchina Ubuntu 17.10. Di seguito sono riportati i passaggi per installare Docker:

  1. Installa i pacchetti richiesti
  2. Imposta repository Docker
  3. Installa Docker su Ubuntu

1. Installa i pacchetti richiesti:

Ci sono alcuni pacchetti necessari nel tuo sistema per l'installazione di Docker. Esegui il comando seguente per installare quei pacchetti.

sudo apt-get install curl apt-transport-https ca-certificates software-properties-common

2. Configurazione del repository Docker:

Ora, importa la chiave GPG ufficiale di Dockers per verificare la firma dei pacchetti prima di installarli con apt-get. Esegui il comando seguente sul terminale:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add

passando gli argomenti della riga di comando in java

Ora aggiungi il repository Docker sul tuo sistema Ubuntu che contiene i pacchetti Docker comprese le sue dipendenze, per eseguire il comando seguente:

sudo add-apt-repository 'deb [arch = amd64] https://download.docker.com/linux/ubuntu $ (lsb_release -cs) stable'

3. Installa Docker su Ubuntu:

Ora è necessario aggiornare apt index e installare Docker community edition, per eseguire i seguenti comandi:

sudo apt-get update sudo apt-get install docker-ce

Congratulazioni! Hai installato correttamente Docker. Inoltre, controlla alcuni di quelli comunemente usati Comandi Docker .

Vediamo ora alcuni importanti concetti di Docker.

Dockerfile, immagine Docker e contenitore Docker:

  1. Un'immagine Docker viene creata dalla sequenza di comandi scritti in un file chiamato Dockerfile.
  2. Quando questo Dockerfile viene eseguito utilizzando un comando Docker, risulta in un'immagine Docker con un nome.
  3. Quando questa immagine viene eseguita dal comando 'docker run', avvierà da sola qualsiasi applicazione o servizio deve avviare durante la sua esecuzione.

Hub Docker:

Docker Hub è come GitHub per le immagini Docker. È fondamentalmente un registro cloud in cui puoi trovare le immagini Docker caricate da diverse comunità, inoltre puoi sviluppare la tua immagine e caricarla su Docker Hub, ma prima devi creare un account su DockerHub.

Architettura Docker:

Consiste in un Docker Engine che è un'applicazione client-server con tre componenti principali:

  1. Un server che è un tipo di programma a lunga esecuzione chiamato processo daemon (il comando docker).
  2. Un'API REST che specifica le interfacce che i programmi possono utilizzare per parlare con il daemon e istruirlo su cosa fare.
  3. Un client CLI (command line interface) (il comando docker).
  4. La CLI utilizza l'API REST Docker per controllare o interagire con il daemon Docker tramite script o comandi CLI diretti. Molte altre applicazioni Docker utilizzano l'API e la CLI sottostanti.

Fare riferimento a questo blog, per saperne di più .

Infine in questo blog Tutorial Docker parlerò di Docker Compose.

Docker Compose:

Docker Compose è fondamentalmente utilizzato per eseguire più Docker Containers come un singolo server. Lasciate che vi faccia un esempio:

Supponiamo che io abbia un'applicazione che richiede WordPress, Maria DB e PHP MyAdmin. Posso creare un file che avvierebbe entrambi i contenitori come servizio senza la necessità di avviarli separatamente. È davvero utile soprattutto se hai un'architettura di microservizi.

Fai riferimento al mio blog su Docker Container per capire come eseguirlo praticamente.

Inoltre, puoi leggere questo blog su come puoi containerizzare un'applicazione di stack medio usando Docker Compose.

Con questo, arriviamo alla fine del primo blog di Docker Tutorial su Introduzione a Docker e containerizzazione.

Passa al nostro prossimo blog su Docker:

Ora che hai capito cos'è DevOps, dai un'occhiata al nostro da Edureka, una società di formazione online affidabile con una rete di oltre 250.000 studenti soddisfatti sparsi in tutto il mondo. Il corso di formazione sulla certificazione Edureka DevOps aiuta gli studenti ad acquisire esperienza in vari processi e strumenti DevOps come Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack e GIT per l'automazione di più passaggi in SDLC.

Hai domande per noi? Per favore menzionalo nella sezione commenti e ti risponderemo.