Docker Tutorial per a principiants: conceptes bàsics, arquitectura, contenidors

Què és Docker?

Docker és una plataforma de desenvolupament de programari per a la virtualització amb diversos sistemes operatius que s’executen al mateix host. Ajuda a separar la infraestructura i les aplicacions per oferir programari ràpidament. A diferència dels hipervisors, que s’utilitzen per crear màquines virtuals (màquines virtuals), la virtualització a Docker es realitza a nivell de sistema, també anomenats contenidors Docker.

Com podeu veure la diferència a la imatge següent, els contenidors Docker s'executen a sobre del sistema operatiu de l'amfitrió. Això us ajuda a millorar l'eficiència i la seguretat. A més, podem executar més contenidors a la mateixa infraestructura que no pas màquines virtuals perquè els contenidors fan servir menys recursos.

Virtualització a Docker vs Hypervisor

A diferència de les màquines virtuals que es poden comunicar amb el maquinari de l'amfitrió (per exemple: adaptador Ethernet per crear més adaptadors virtuals), els contenidors Docker s'executen en un entorn aïllat a la part superior del sistema operatiu de l'amfitrió. Fins i tot si el vostre amfitrió utilitza el sistema operatiu Windows, podeu tenir imatges de Linux en contenidors amb l'ajut d'Hyper-V, que crea automàticament una màquina virtual petita per virtualitzar la imatge base del sistema, en aquest cas, Linux.

En aquest tutorial de Docker per a principiants, aprendreu els conceptes bàsics de Docker, com ara:

Per què utilitzar Docker?

  • Docker és un programari informàtic que s’utilitza per a la virtualització per tal de tenir diversos sistemes operatius executats al mateix amfitrió
  • Docker és el tipus d’aplicació client-servidor que significa que tenim clients que transmeten al servidor
  • Les imatges de Docker són el 'codi font' dels nostres contenidors; els fem servir per construir
  • Dockerfile té dos tipus de registres 1.) públics i 2) registres privats
  • Els contenidors són les unitats organitzatives del volum de Docker. En termes senzills, una imatge és una plantilla i un contenidor és una còpia d’aquesta plantilla. Podeu tenir diversos contenidors (còpies) de la mateixa imatge.

Docker Architecture

Ara, en aquest tutorial de contenidors Docker, parlem dels components principals de Docker a Docker Architecture:

Docker Architecture

Docker Engine

Docker és el tipus d’aplicació client-servidor que significa que tenim clients que transmeten al servidor. Així doncs, el dimoni Docker anomenat: dockerd és el motor Docker que representa el servidor. El daemon docker i els clients es poden executar al mateix host o remot, i es comuniquen mitjançant un binari de client de línia d'ordres, així com una API RESTful completa per interactuar amb el daemon: dockerd.

Imatges Docker

Les imatges de Docker són el 'codi font' dels nostres contenidors; els fem servir per construir contenidors. Poden tenir programari preinstal·lat que agilitza el desplegament. Són portàtils i podem utilitzar imatges existents o crear-ne de pròpies.

Registres Docker

Docker emmagatzema les imatges que construïm en registres. Hi ha registres públics i privats. L’empresa Docker té el registre públic anomenat Hub Docker , on també podeu emmagatzemar imatges de forma privada. Docker hub té milions d'imatges que podeu començar a utilitzar ara.

Contenidors Docker

Els contenidors són les unitats organitzatives i un dels conceptes bàsics de Docker. Quan construïm una imatge i comencem a executar-la; estem corrent en un contenidor. L’analogia del contenidor s’utilitza a causa de la portabilitat del programari que tenim al contenidor. Podem moure’l, és a dir, “enviar” el programari, modificar-lo, gestionar-lo, crear-lo o desfer-lo, destruir-lo, tal com poden fer els vaixells de càrrega amb contenidors reals.

En termes senzills, una imatge és una plantilla i un contenidor és una còpia d’aquesta plantilla. Podeu tenir diversos contenidors (còpies) de la mateixa imatge.

A continuació tenim una imatge que representa perfectament la interacció entre els diferents components i el funcionament de la tecnologia de contenidors Docker.

El que tenim diversos comandaments de dockers és Docker pull, Docker Run .. en parlarem més endavant.

Com instal·lar Docker a Linux / Ubuntu

A continuació es mostra un procés d’instal·lació de Docker pas a pas a Linux / Ubuntu:

Pas 1 ) Per instal·lar Docker, hem d’utilitzar els paquets DEB de l’equip Docker.

Per a això, es requereixen alguns paquets prerequisits d'Ubuntu.

Utilitzeu l'ordre següent per instal·lar paquets Ubuntu

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

* El signe '/' no és necessari, s'utilitza per a la nova línia, si voleu, podeu escriure l'ordre sense utilitzar '/' només en una línia.

Pas 2) Afegiu la clau oficial Docker GPG amb l'empremta digital.

Utilitzeu l'ordre Docker següent per introduir la clau GPG

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

Pas 3) A continuació, afegiu el dipòsit APT de Docker.

Utilitzeu l'ordre Docker següent per afegir el repositori

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

És possible que se us demani que confirmeu que voleu afegir el dipòsit i que la clau GPG s'afegeixi automàticament al vostre amfitrió.

L'ordre lsb_release hauria d'emplenar la versió de distribució Ubuntu del vostre amfitrió.

Pas 4) Després d'afegir la clau GPG,

Actualitzeu les fonts APT mitjançant l'ordre Docker següent

 $ sudo apt-get update 

Ara podem instal·lar el paquet Docker mateix.

Pas 5) Un cop actualitzades les fonts APT,

Comenceu a instal·lar els paquets Docker a Ubuntu mitjançant l'ordre Docker següent

 $ sudo apt-get install docker-ce 

L'ordre indicada anteriorment instal·la Docker i altres paquets necessaris addicionals. Abans de Docker 1.8.0, el nom del paquet era lxc-docker i, entre Docker 1.8 i 1.13, el nom del paquet era docker-engine.

NOTA : Docker per a Windows requereix Windows 10 Pro o Enterprise versió 14393 o Windows Server 2016 RTM per executar-se

Com s'utilitza Docker mitjançant ordres bàsiques de Docker

A continuació s'explica com utilitzar Docker mitjançant ordres bàsiques de Docker:

L'ordre més bàsic que hem d'executar després d'instal·lar Docker és la informació de $ docker, com hem dit anteriorment.

 $ sudo docker info 

Haureu d'obtenir el resultat similar o següent

Com podem veure a l'exemple anterior de Docker, tenim informació sobre contenidors docker quants s'estan executant, aturats o aturats i quantes imatges hem descarregat. Obtenim la nostra primera imatge en aquest tutorial d’ordres de Docker.

 $ sudo docker pull alpine 

Amb aquesta ordre li estem dient a docker que descarregui la imatge alpina i que la tregui del registre públic, l'última versió que s'estableix per defecte.

* alpine és una imatge Docker mínima basada en Alpine Linux amb un índex de paquet complet i de només 5 MB de mida.

Si volem executar la imatge com a contenidor, utilitzarem l'ordre següent d'aquesta guia de tutorials de Docker.

 $ sudo docker run -i -t alpine /bin/bash 

Si executem l’ordre, ens enviaran directament al terminal de l’alpí. El senyalador -i manté STDIN obert des del contenidor, fins i tot quan no hi esteu connectat. Aquesta entrada estàndard persistent és la meitat del que necessiteu per a un intèrpret d'ordres interactiu. El senyalador -t és l'altra meitat i indica a Docker que assigni una pseudo-tty al contenidor. Això ens ofereix un shell interactiu al contenidor nou. Sortim del contenidor amb una senzilla ordre de sortida.

Ara, en aquest tutorial bàsic de Docker, podem provar d'executar una imatge d'Ubuntu.

 $ sudo docker run -it ubuntu /bin/bash 

Podeu notar que la imatge de la base de dades està localitzada i, si no hi és, la imatge s’extreu de la biblioteca d’imatges automàticament i, una vegada més, tenim un intèrpret d’ordres interactiu en execució. També podem anomenar els contenidors a mesura que els executem.

 $ sudo docker run –-name our_container -it ubuntu /bin/bash 

i tornem a sortir.

També podem executar el contenidor que hem creat prèviament, sense un intèrpret d’ordres interactiu.

 $ sudo docker start container_name 

I atureu el contenidor d'escriptura del contenidor atureu container_name

 $ sudo docker stop container_name 

Si volem veure tots els contenidors en execució, simplement executem

 $ docker ps 

I per a tots els contenidors afegim '- a' al final d'aquesta mateixa ordre, com aquest acoblador ps -a.

Aquesta ordre mostra l'identificador del contenidor, la imatge que s'utilitza quan es va crear, l'estat d'execució, els ports exposats i el nom generat aleatòriament per al contenidor per facilitar la gestió.

Quan executem contenidors, també ens agradaria saber quants recursos utilitzen, amb aquest propòsit podem utilitzar l'ordre.

 $ docker stats 

També podeu veure quines imatges hem descarregat localment i informació sobre elles.

 $ sudo docker images 

L'ordre de l'exemple anterior de Docker mostra la imatge de Docker amb una etiqueta que mostra la nostra versió d'imatge, un identificador d'imatge distintiu, quan es va crear i la mida de la imatge.

Què és la virtualització?

Abans, el procés per desplegar un servei era lent i dolorós. Primer, els desenvolupadors escrivien codi; llavors l’equip d’operacions el desplegaria en màquines de metall nu, on havien de buscar versions de la biblioteca, pegats i compiladors d’idiomes perquè el codi funcionés. Si hi hagués algun error o error, el procés tornaria a començar, els desenvolupadors ho solucionarien i, de nou, l’equip operatiu estaria allà per desplegar-se.

Es va millorar amb la creació d’hipervisors. Els hipervisors tenen diverses màquines virtuals o màquines virtuals al mateix amfitrió, que poden estar en execució o desactivades. Les màquines virtuals van reduir el temps d’espera per desplegar el codi i la correcció d’errors de manera important, però el veritable canvi de joc va ser el dels contenidors Docker.

Comandaments importants de Docker

A continuació es mostren les ordres importants de Docker:

ComandamentDescripció
informació sobre acobladorOrdre d'informació
estirar estibadorBaixeu-vos una imatge
docker executa -i -t nom_imatge / bin / bashExecuteu la imatge com a contenidor
docker inicia el nostre_contenidorArrenca el contenidor
docker stop container_nameAtura el contenidor
acoblador psLlista de tots els contenidors en funcionament
estadístiques dockerInformació del contenidor
imatges dockerLlista d'imatges descarregades
Neteja de DockerMata tots els contenidors en funcionament.

Resum

  • Docker és una plataforma de desenvolupament de programari per a la virtualització amb diversos sistemes operatius que funcionen al mateix amfitrió. Ajuda a separar la infraestructura i les aplicacions per oferir programari ràpidament.
  • Docker Architecture: Docker Engine, Docker Images, Docker Registries, Docker Containers
  • Docker Engine: Docker és el tipus d’aplicació client-servidor que significa que tenim clients que transmeten al servidor. Així doncs, el dimoni Docker anomenat: dockerd és el motor Docker que representa el servidor.
  • Imatges Docker: les imatges Docker són el 'codi font' dels nostres contenidors; els fem servir per construir contenidors. Poden tenir programari preinstal·lat que agilitza el desplegament. Són portàtils i podem utilitzar imatges existents o crear-ne de pròpies.
  • Registres Docker: Docker emmagatzema les imatges que construïm en registres. Hi ha registres públics i privats. L’empresa Docker té un registre públic anomenat Docker hub, on també podeu emmagatzemar imatges de forma privada. Docker hub té milions d'imatges que podeu començar a utilitzar ara.
  • Docker Containers: els contenidors són les unitats organitzatives i un dels conceptes bàsics de Docker. Quan construïm una imatge i comencem a executar-la; estem corrent en un contenidor. L’analogia del contenidor s’utilitza a causa de la portabilitat del programari que tenim al contenidor.