Tutorial Docker: Introducció a Docker i contenidors

En aquest tutorial de Docker, entendreu la necessitat de Docker i obtindreu una introducció a Docker. És el primer bloc de la sèrie de tutorials de Docker

Espero que no us hagueu perdut la sèrie dels anteriors blocs de DevOps Tutorial. Passeu pel aquí.La tendència incontenible del contenidor Docker creix i les organitzacions busquen professionals que tinguin .Aquesta vegada, us guiarem amb una Introducció a Docker.



Tutorial de Docker

Aquest bloc Docker Tutorial us proporcionarà una exposició conceptual i pràctica a Docker: una tecnologia de contenidors de nova era.



En aquest bloc, ens centrarem en els temes següents:

  • Què és la virtualització?
  • Què és la contenerització
  • Avantatges de l’envasament sobre la virtualització
  • Introducció a Docker
  • Avantatges de Docker
  • Virtualització vs Conteniment
  • Instal·lació de Docker
  • Dockerfile, Docker Image i Docker Container
  • Què és Docker Hub?
  • Docker Architecture
  • Docker Compose

Docker està guanyant popularitat i el seu ús s'estén com la pólvora. El motiu de la creixent popularitat de Docker és fins a quin punt es pot utilitzar en una organització de TI. Molt poques eines tenen la funcionalitat de trobar-se útil tant per als desenvolupadors com per als administradors de sistemes. Docker és una d’aquestes eines que realment compleix la seva promesa Construeix , Vaixell i Correr .



En paraules simples, Docker és una plataforma de contenidors de programari, és a dir, podeu crear la vostra aplicació, empaquetar-les juntament amb les seves dependències en un contenidor i, posteriorment, aquests contenidors es poden enviar fàcilment per executar-les en altres màquines.

Per exemple: Considerem una aplicació basada en Linux que s’ha escrit tant en Ruby com en Python. Aquesta aplicació requereix una versió específica de Linux, Ruby i Python. Per evitar conflictes de versions al final de l’usuari, es pot crear un contenidor d’acoblament de Linux amb les versions necessàries de Ruby i Python instal·lades juntament amb l’aplicació. Ara els usuaris finals poden utilitzar l’aplicació fàcilment executant aquest contenidor sense preocupar-se de les dependències ni dels conflictes de versió.

Aquests contenidors fan servir Containerization, que es pot considerar com una versió evolucionada de Virtualization. La mateixa tasca també es pot aconseguir mitjançant màquines virtuals, però no és molt eficient.



En general, en aquest moment rebo una pregunta, és a dir, quina diferència hi ha entre virtualització i envasament? Aquests dos termes són molt similars entre si. Per tant, deixeu-me dir-vos primer què és la virtualització?

Què és la virtualització?

La virtualització és la tècnica d’importar un sistema operatiu convidat a sobre d’un sistema operatiu host. Aquesta tècnica va ser una revelació al principi, ja que permetia als desenvolupadors executar diversos sistemes operatius en diferents màquines virtuals que funcionaven en el mateix host. Això va eliminar la necessitat de recursos de maquinari addicionals. Els avantatges de les màquines virtuals o la virtualització són:

  • Diversos sistemes operatius poden funcionar a la mateixa màquina
  • El manteniment i la recuperació van ser fàcils en cas de fallades
  • El cost total de propietat també va ser menor a causa de la necessitat reduïda d’infraestructures

Arquitectura de màquines virtuals - Tutorial de Docker sobre introducció a Docker - Edureka

Al diagrama de la dreta, podeu veure que hi ha un sistema operatiu amfitrió en el qual hi ha 3 sistemes operatius convidats en execució que no són més que les màquines virtuals.

Com ja sabeu, res no és perfecte, la virtualització també presenta algunes deficiències. Executar diverses màquines virtuals al mateix sistema operatiu amfitrió comporta una degradació del rendiment. Això es deu al fet que el sistema operatiu convidat s'executa a sobre del sistema operatiu amfitrió, que tindrà el seu propi nucli i un conjunt de biblioteques i dependències. Això ocupa una gran quantitat de recursos del sistema, és a dir, el disc dur, el processador i sobretot la memòria RAM.

Un altre problema amb les màquines virtuals que utilitza la virtualització és que triga gairebé un minut a arrencar.Això és molt crític en cas d'aplicacions en temps real.

A continuació es mostren els desavantatges de la virtualització:

  • Executar diverses màquines virtuals comporta un rendiment inestable
  • Els hipervisors no són tan eficients com el sistema operatiu amfitrió
  • El procés d’arrencada és llarg i requereix temps

Aquests inconvenients van provocar l’aparició d’una nova tècnica anomenada Contenerització. Ara deixeu-me que us expliqui sobre la contenerització.

Què és la contenerització?

La conteniment és la tècnica per portar la virtualització al nivell del sistema operatiu. Tot i que la virtualització aporta abstracció al maquinari, la Containerization aporta abstracció al sistema operatiu. Tingueu en compte que el contenidor també és un tipus de virtualització. Tanmateix, la conteniment és més eficient perquè aquí no hi ha cap sistema operatiu convidat i utilitza el sistema operatiu d’un amfitrió, comparteix les biblioteques i recursos rellevants quan i quan sigui necessari a diferència de les màquines virtuals. Els binaris i les biblioteques de contenidors específics de l'aplicació s'executen al nucli amfitrió, cosa que fa que el processament i l'execució sigui molt ràpid. Fins i tot arrencar un contenidor triga només una fracció de segon. Com que tots els contenidors comparteixen, allotgen el sistema operatiu i només contenen els binaris i les biblioteques relacionats amb l'aplicació. Són lleugers i més ràpids que les màquines virtuals.

Avantatges de l’envasament sobre la virtualització:

  • Els contenidors del mateix nucli del sistema operatiu són més lleugers i més petits
  • Millor aprofitament dels recursos en comparació amb les màquines virtuals
  • El procés d'arrencada és breu i triga uns quants segons

Al diagrama de la dreta, podeu veure que hi ha un sistema operatiu amfitrió compartit per tots els contenidors. Els contenidors només contenen biblioteques específiques d’aplicacions que són separades per a cada contenidor i són més ràpides i no malgasten recursos.

Tots aquests contenidors són gestionats per la capa de contenidors que no és nativa del sistema operatiu amfitrió. Per tant, cal un programari que us pugui permetre crear i executar contenidors al sistema operatiu amfitrió.

Mireu aquest vídeo tutorial de Docker per obtenir una comprensió profunda de Docker.

Tutorial Docker per a principiants | Què és Docker? | Eines DevOps | Edureka

Ara, deixeu-me fer-vos arribar la introducció de Docker.

Docker Tutorial: Introducció a Docker

Docker és una plataforma de contenidors que empaqueta la vostra aplicació i totes les seves dependències en forma de contenidors per garantir que la vostra aplicació funcioni perfectament en qualsevol entorn.

Com podeu veure al diagrama de la dreta, cada aplicació s'executarà en un contenidor separat i tindrà el seu propi conjunt de biblioteques i dependències. Això també garanteix que hi hagi aïllament del nivell de procés, és a dir, que cada aplicació sigui independent de les altres aplicacions, cosa que proporciona als desenvolupadors la seguretat que poden construir aplicacions que no interfereixin entre elles.

Com a desenvolupador, puc construir un contenidor que tingui instal·lades diferents aplicacions i donar-lo al meu equip de control de qualitat, que només haurà d'executar el contenidor per replicar l'entorn del desenvolupador.

Avantatges de Docker

Ara, l’equip de control de qualitat no necessita instal·lar tot el programari i les aplicacions dependents per provar el codi i això els ajuda a estalviar molt de temps i energia. Això també garanteix que l’entorn de treball sigui coherent entre totes les persones implicades en el procés, des del desenvolupament fins al desplegament. El nombre de sistemes es pot ampliar fàcilment i es pot desplegar el codi sense esforç.

Virtualització vs Conteniment

Ambdues de virtualització i de contenidors us permeten executar diversos sistemes operatius dins d’una màquina amfitriona.

La virtualització s’ocupa de crear molts sistemes operatius en una màquina principal. D'altra banda, la contenidorització crearà diversos contenidors per a cada tipus d'aplicació, segons es requereixi.

Figura: Què és l’anàlisi de dades massives: virtualització i envasament de contenidors

Com podem veure a la imatge, la diferència principal és que hi ha diversos sistemes operatius convidats a la virtualització que no estan presents a la contenerització. La millor part de Containerization és que és molt lleuger en comparació amb la virtualització pesada.

Ara, instal·leu Docker.

Instal·leu Docker:

Instal·laré Docker a la meva màquina Ubuntu 17.10. A continuació es detallen els passos per instal·lar Docker:

  1. Instal·leu els paquets necessaris
  2. Configureu el dipòsit Docker
  3. Instal·leu Docker a Ubuntu

1. Instal·leu els paquets necessaris:

Hi ha alguns paquets que necessiteu al vostre sistema per instal·lar Docker. Executeu l'ordre següent per instal·lar aquests paquets.

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

2. Configureu el dipòsit de Docker:

Ara, importeu la clau GPG oficial de Dockers per verificar la signatura dels paquets abans d’instal·lar-los amb apt-get. Executeu l'ordre següent al terminal:

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

Ara, afegiu el dipòsit Docker al vostre sistema Ubuntu que conté paquets Docker, incloses les seves dependències, per executar l'ordre següent:

com acabar un mètode a Java
sudo add-apt-repository 'deb [arch = amd64] https://download.docker.com/linux/ubuntu $ (lsb_release -cs) stable'

3. Instal·leu Docker a Ubuntu:

Ara heu d’actualitzar l’índex apt i instal·lar l’edició de la comunitat Docker, per a això, executeu les ordres següents:

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

Enhorabona! Heu instal·lat correctament Docker. A més, consulteu-ne alguns d’ús habitual Ordres Docker .

Ara vegem alguns conceptes importants de Docker.

Dockerfile, Docker Image i Docker Container:

  1. Una imatge Docker es crea mitjançant la seqüència d’ordres escrites en un fitxer anomenat Dockerfile.
  2. Quan aquest fitxer Docker s'executa mitjançant una ordre docker, es tradueix en una imatge Docker amb un nom.
  3. Quan aquesta imatge s'executa mitjançant l'ordre 'docker run', per si mateixa iniciarà qualsevol aplicació o servei que hagi d'iniciar en la seva execució.

Hub Docker:

Docker Hub és com GitHub per a Docker Images. Bàsicament és un registre al núvol on podeu trobar imatges de Docker carregades per diferents comunitats, també podeu desenvolupar la vostra pròpia imatge i pujar-les a Docker Hub, però primer heu de crear un compte a DockerHub.

Arquitectura Docker:

Consisteix en un Docker Engine que és una aplicació client-servidor amb tres components principals:

  1. Un servidor que és un tipus de programa de llarga durada anomenat procés de dimoni (l'ordre docker).
  2. Una API REST que especifica les interfícies que els programes poden utilitzar per parlar amb el dimoni i indicar-li què ha de fer.
  3. Un client d'interfície de línia d'ordres (CLI) (l'ordre docker).
  4. La CLI utilitza l'API REST de Docker per controlar o interactuar amb el dimoni Docker mitjançant scripts o ordres CLI directes. Moltes altres aplicacions Docker utilitzen l'API i la CLI subjacents.

Consulteu aquest bloc per obtenir més informació .

Finalment, en aquest bloc Docker Tutorial parlaré de Docker Compose.

Docker Compose:

Docker Compose s’utilitza bàsicament per executar diversos contenidors Docker com a servidor únic. Deixeu-me donar-vos un exemple:

Suposem que si tinc una aplicació que requereix WordPress, Maria DB i PHP MyAdmin. Puc crear un fitxer que iniciï tant els contenidors com un servei sense necessitat d'iniciar-los cadascun per separat. És realment útil sobretot si teniu una arquitectura de microservei.

Consulteu el meu bloc a Docker Container per entendre com executar-lo pràcticament.

A més, podeu llegir aquest bloc sobre com podeu contenir una aplicació de pila mitjana mitjançant Docker Compose.

Amb això, arribem al final del primer bloc de Docker Tutorial sobre Introducció a Docker i contenidors.

Consulteu el nostre proper bloc a Docker:

Ara que ja heu entès què és DevOps, consulteu el nostre 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 adquirir experiència en diversos processos i eines DevOps com Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack i GIT per automatitzar diversos passos en SDLC.

Tens alguna pregunta? Esmenta’l a la secció de comentaris i et respondrem.