Docker Architecture: per què és important?

En aquest bloc es parla de l'arquitectura del docker i els seus diversos components. Destaca les funcions de Docker que ens indiquen la raó de la seva popularitat.

Molts de nosaltres creiem que Docker és una part integral de . Per tant, darrere d’aquesta eina increïble hi ha d’haver una arquitectura sorprenent. En aquest bloc, tractaré tot el que heu de saber sobre l'arquitectura Docker. Aquests són els punts que tractaré aquí:



  1. Virtualització tradicional vs Docker
  2. Flux de treball de Docker
  3. Docker Architecture

Virtualització tradicional Vs Docker

Què és una màquina virtual (màquina virtual)?

Una màquina virtual és un servidor virtual que emula un servidor de maquinari. Una màquina virtual es basa en el maquinari físic del sistema per emular exactament el mateix entorn en què instal·leu les vostres aplicacions. En funció del cas d’ús, podeu utilitzar una màquina virtual del sistema (que executa un sistema operatiu sencer com a procés, que us permet substituir una màquina real per una màquina virtual) o processar màquines virtuals que us permetin executar sols aplicacions informàtiques a la virtual entorn.



Abans, creavem màquines virtuals i cada màquina virtual tenia un sistema operatiu que ocupava molt d’espai i el feia pesat.

Què és Docker?

Docker és un projecte de codi obert que ofereix una solució de desenvolupament de programari coneguda com a contenidors. Per entendre Docker, heu de saber què són els contenidors. D'acord amb Docker , Un contenidor és un paquet executable i lleuger d'un programari que inclou tot el necessari per executar-lo.



Els contenidors són independents de la plataforma i, per tant, Docker pot funcionar a través de plataformes basades en Windows i Linux. De fet, Docker també es pot executar dins d’una màquina virtual si es necessita fer-ho. L'objectiu principal de Docker és que us permet executar aplicacions de microserveis en una arquitectura distribuïda.

En comparació amb les màquines virtuals, la plataforma Docker mou l’abstracció de recursos des del nivell de maquinari fins al nivell del sistema operatiu. Això permet la realització dels diversos avantatges dels contenidors, per exemple. portabilitat d’aplicacions, separació d’infraestructures i microserveis autònoms.

Dit d’una altra manera, mentre les màquines virtuals abstracteixen tot el servidor de maquinari, els contenidors abreuen el nucli del sistema operatiu. Aquest és un enfocament totalment diferent de la virtualització i resulta en instàncies molt més ràpides i lleugeres.



c ++ ordenar els números en ordre ascendent

vm vs docker - arquitectura docker - edureka

Flux de treball de Docker

En primer lloc, vegem Docker Engine i els seus components per tenir una idea bàsica del funcionament del sistema. Docker Engine us permet desenvolupar, muntar, enviar i executar aplicacions mitjançant els components següents:

  1. Docker Daemon : Procés de fons persistent que gestiona imatges, contenidors, xarxes i volums d'emmagatzematge de Docker. El dimoni Docker escolta constantment les sol·licituds de l'API Docker i les processa.

  2. API REST de Docker Engine : Les aplicacions utilitzen una API per interactuar amb el dimoni Docker. Un client HTTP pot accedir-hi.

  3. Docker CLI : Client d'interfície de línia d'ordres per interactuar amb el dimoni Docker. Simplifica significativament la manera de gestionar les instàncies de contenidors i és un dels motius principals pels quals als desenvolupadors els agrada utilitzar Docker.

Al principi, el client de Docker parla amb el dimoni Docker, que realitza l’elevació pesada de l’edifici, en marxa i també distribueix els nostres contenidors Docker. Fonamentalment, tant el client Docker com el dimoni poden executar-se al mateix sistema. També podem connectar un client Docker a undimoni Docker remot. A més, mitjançant l’ús d’una API REST, el client i el dimoni Docker, comuniqueu-vos mitjançant sockets UNIX o una interfície de xarxa.

Docker Architecture

L’arquitectura de Docker utilitza un model client-servidor i està formada pels components del client, l’amfitrió de Docker, els components de xarxa i emmagatzematge i el registre / concentrador de Docker. Vegem cadascun d’aquests detalls.

Client de Docker

Els usuaris de Docker poden interactuar amb Docker a través d’un client. Quan s’executa qualsevol ordre d’acoblament, el client els envia al dimoni dockerd, que els realitza. Les comandes de Docker utilitzen l'API Docker. És possible que el client Docker es comuniqui amb més d'un dimoni.

Amfitrió Docker

L'amfitrió Docker proporciona un entorn complet per executar i executar aplicacions. Comprèn el dimoni Docker, imatges, contenidors, xarxes i emmagatzematge. Com es va esmentar anteriorment, el dimoni és responsable de totes les accions relacionades amb el contenidor i rep ordres mitjançant la CLI ol’API REST. També pot comunicar-se amb altres dimonis per gestionar els seus serveis.

Objectes Docker

1. Imatges

Les imatges no són altra cosa que una plantilla binària de només lectura que pot crear contenidors. També contenen metadades que descriuen les capacitats i les necessitats del contenidor. Les imatges s’utilitzen per emmagatzemar i enviar aplicacions. Una imatge es pot utilitzar sola per crear un contenidor o personalitzar-la per afegir elements addicionals per ampliar la configuració actual.

Podeu compartir les imatges de contenidors entre equips d'una empresa amb l'ajuda d'un registre de contenidors privat o compartir-les amb el món mitjançant un registre públic com Docker Hub. Les imatges són l’element bàsic de l’experiència de Docker, ja que permeten la col·laboració entre desenvolupadors d’una manera que abans no era possible

2. Contenidors

Els contenidors són una mena d’entorns encapsulats en què executeu aplicacions. El contenidor es defineix per la imatge i les opcions de configuració addicionals que es proporcionen en iniciar el contenidor, incloses i no limitades a les connexions de xarxa i les opcions d’emmagatzematge. Els contenidors només tenen accés als recursos definits a la imatge, tret que es defineixi un accés addicional quan es crea la imatge en un contenidor.

També podeu crear una imatge nova en funció de l’estat actual d’un contenidor. Com que els contenidors són molt més petits que les màquines virtuals, es poden girar en qüestió de segons i donen com a resultat una densitat de servidor molt millor

3. Xarxes

La xarxa Docker és un passatge pel qual es comuniquen tots els contenidors aïllats. Hi ha principalment cinc controladors de xarxa a Docker:

classe __init__ pitó
    1. Pont : És el controlador de xarxa predeterminat per a un contenidor. Utilitzeu aquesta xarxa quan l’aplicació s’executa en contenidors independents, és a dir, diversos contenidors que es comuniquen amb el mateix amfitrió d’acoblament.

    2. Amfitrió : Aquest controlador elimina l'aïllament de la xarxa entre els contenidors i l'amfitrió d'acoblament. Podeu utilitzar-lo quan no necessiteu cap aïllament de xarxa entre l’amfitrió i el contenidor.

    3. Superposició : Aquesta xarxa permet que els serveis d’eixam es comuniquin entre ells. L'utilitzeu quan voleu que els contenidors s'executin en diferents amfitrions de Docker o quan vulgueu formar serveis d'eixam mitjançant diverses aplicacions.

    4. Cap : Aquest controlador desactiva tota la xarxa.

    5. macvlan : Aquest controlador assigna l'adreça Mac als contenidors perquè semblin dispositius físics. Encamina el trànsit entre contenidors a través de les seves adreces Mac. Utilitzeu aquesta xarxa quan voleu que els contenidors semblin un dispositiu físic, per exemple, mentre migreu una configuració de màquina virtual.

4. Emmagatzematge

Podeu emmagatzemar dades a la capa d'escriptura d'un contenidor, però requereix un controlador d'emmagatzematge. Com que no és persistent, pereix sempre que el contenidor no funciona. A més, no és fàcil transferir aquestes dades. Pel que fa a l’emmagatzematge persistent, Docker ofereix quatre opcions:

    1. Volums de dades : Proporcionen la possibilitat de crear emmagatzematge persistent, amb la possibilitat de canviar el nom dels volums, enumerar els volums i enumerar també el contenidor associat al volum. Els volums de dades es col·loquen al sistema de fitxers de l’amfitrió, fora dels mecanismes de còpia i escriptura dels contenidors i són bastant eficients.

    2. Contenidor de volum : És un enfocament alternatiu en què un contenidor dedicat allotja un volum i muntar aquest volum a altres contenidors. En aquest cas, el contenidor de volum és independent del contenidor de l’aplicació i, per tant, el podeu compartir en més d’un contenidor.

      tipus de dades de data en sql
    3. Muntatges de directori : Una altra opció és muntar el directori local d’un amfitrió en un contenidor. En els casos esmentats anteriorment, els volums haurien d’estar dins de la carpeta de volums de Docker, mentre que quan es tracta de Muntatges de directoris, qualsevol directori de la màquina amfitrió es pot utilitzar com a font del volum.

    4. Connectors d'emmagatzematge : Els connectors d’emmagatzematge proporcionen la possibilitat de connectar-se a plataformes d’emmagatzematge externes. Aquests connectors mapen l’emmagatzematge des de l’amfitrió fins a una font externa, com ara una matriu d’emmagatzematge o un dispositiu. Podeu veure una llista de connectors d’emmagatzematge a la pàgina de connectors de Docker.

Registre de Docker

Els registres Docker són serveis que proporcionen ubicacions des d’on podeu emmagatzemar i descarregar imatges. Dit d’una altra manera, un registre Docker conté repositoris Docker que allotgen una o més imatges Docker. Els registres públics inclouen dos components: el Docker Hub i el Docker Cloud. També podeu utilitzar registres privats. Les ordres més habituals quan es treballa amb registres inclouen: push docker, pull docker, docker run

Ara que heu entès l'Arquitectura Docker, consulteu-ho per Edureka, una empresa d'aprenentatge en línia de confiança amb una xarxa de més de 250.000 estudiants satisfets repartits per tot el món. El curs de formació en certificació Edureka DevOps ajuda els estudiants a entendre què és DevOps i obtenir experiència en diversos processos i eines DevOps com Puppet, Jenkins, Nagios, Ansible, Xef, Saltstack i GIT per automatitzar diversos passos en SDLC.

Tens alguna pregunta? Si us plau, mencioneu-lo a la secció de comentaris d'aquesta 'Arquitectura Docker' i us respondrem