¿Que és docker?

Què és Docker com funciona i per a què serveix? Aquí trobaràs una breu introducció per iniciar-te en el món dels contenidors i dev ops.

¿Que és docker?

Amb aquesta mini serie de tutorials veuràs com separar el teu projecte de la màquina sobre la que s’executa.

Segur que en alguna ocasió t’has trobat amb la necessitat d'instal·lar tot un seguit de llibreries o altres eines al teu ordinador per poder arrencar amb un projecte, pero clar, això feia que només funcionés a la teva màquina, ¿que passa si canvies d’ordinador, o si vols treballar en més d’un, has de tornar a instal·lar-ho tot de nou? I no parlem de quan comencen a sortir conflictes entre les llibreries i les seves versions.

Docker al rescat, veureu com la majoria d’aquest problemes desapareixen amb aquesta heina.

Així doncs, ¿què ès Docker?

Docker es un sistema de virtualització, per tant ens ofereix la possibilitat de treballar en el nostre ordinador amb un sistema operatiu i virtualitzar una màquina amb un altre sistema operatiu. Vol dir això que amb Docker puc virtualitzar un entorn Windows sobre un entorn Linux? Doncs no, Docker tan sols funciona sobre línea de comandes, per tant està molt enfocat a virtualitzar els entorns que ens trobarem en els servidors on podem allotjar els nostres projectes. Pot semblar una mica estrany però penseu que gràcies a això s’aconsegueix que les virtualitzacions siguin molt lleugeres de manera que es pugui virtualitzar diverses maquines a l’hora, es tot un avantatge, ja veureu.

Molt bé, ¿i com funciona?

Docker es divideix en ✌ dos grans conceptes que s’han de tenir clars: imatges i contenidors.

La Imatge es pot considerar a grans trets com la definició del sistema a virtualitzar, és a dir, quin sistema operatiu executa, quines llibreries conté i la seva configuració. A l’altre banda tenim el contenidor, que es una imatge en execució. Recordo que la primera vegada que vaig intentar entendre aquesta diferència em va costar, així que com a exemple es podría considerar que la Imatge és con un pendrive amb l'instal·lador d’un sistema operatiu, i el Contenidor es el sistema operatiu instal·lat a una màquina, tan sols tens un pendrive i el pots instal·lar tants cops i a tantes màquines com vulguis.

I aleshores, ¿què fa?

Un cop s’ha definit i generat la imatge amb l'entorn que volem virtualitzar mitjançant un fitxer anomenat Dockerfile (que veurem en les següents entrades al blog) es crea el contenidor que serà l’encarregat d’executar la comanda que volem. Si, has llegit bé, un contenidor s’encarrega tant sols d’executar una comanda. Sembla una bogeria, tot aquest enrenou només per una comanda, però ho veureu millor amb un parell de casos:

Es genera la imatge, es crea el contenidor i s’executa la comanda, però penseu que pot ser qualsevol comanda, és a dir, heu pogut virtualitzar tot un entorn Linux amb les llibreries necessàries per executar un servidor de Node.js, aleshores aquest contenidor no s'apagarà mai mentres s’estigui executant el servidor. Un altre cas podría ser una comanda que ens digui l’hora, o la comunicació amb un dispositiu extern que ens doni la temperatura i un cop acaba l'execució el contenidor s’aturaria.

Si tot aixo t’ha despertat la curiositat o directament les ganes de treballar amb Docker et recomano continuar llegint la resta d’articles on explicarem com treballar amb aquesta eina, tant en entorns de desenvolupament com en entorns professionals.