Docker – začíname s dockerom

Čo vlastne je docker?

Docker je platforma pre vývojárov a sysadminov na vývoj, nasadzovanie a spúšťanie aplikácií pomocou kontajnerov. Samotné kontajnery nie sú nové, ale ich použitie na ľahké nasadenie aplikácií je. Môžeme to chápať ako nástroj, ktorý nám spustí aplikaciu, ale s minimálnymi požiadavkami na konfiguráciu a správu. V prípade, že vyvíjame aplikacie na rôznych platformách a konfiguráciach stači nám spustiť si pre každú aplikaciu samostatný kontainer.

Kontajnerizácia je čoraz populárnejšia, pretože kontajnery sú:

Flexibilné: Dokonca aj tie najzložitejšie aplikácie môžu byť kontajnerové.
Ľahké: Kontajnery využívajú a zdieľajú hostiteľské jadro.
Vymeniteľné: Aktualizácie a inovácie môžete nasadiť bez problémov.
Prenosný: Môžete stavať lokálne, nasadiť do cloudu a spustiť kdekoľvek.
Škálovateľné: Môžete zvýšiť a automaticky distribuovať repliky kontajnerov.

Images a kontajnery
Kontajner sa spustí spustením image (obrazu). Obraz je spustiteľný balík, ktorý obsahuje všetko potrebné na spustenie aplikácie – kód, runtime, knižnice, premenné prostredia a konfiguračné súbory.

Kontajner je spustená inštancia obrazu – čo po spustení je obraz v pamäti (tj obrázok so stavom alebo proces používateľa). Zoznam bežiacich kontajnerov si môžete vypisať s príkazom, dokorker ps

Kontajnery a virtuálne stroje

Kontajner beží natívne na systéme Linux a zdieľa jadro hostiteľského počítača s inými kontajnermi. Prebieha diskrétny proces, ktorý nevyžaduje viac pamäti než akýkoľvek iný spustiteľný súbor, takže je ľahký.

Schéma kontaineru

Docker kontainer šruktúra

Docker kontainer šruktúra

 

 

 

 

 

 

 

 

Na rozdiel od toho virtuálny stroj (VM) spúšťa úplný „hosť“ operačný systém s virtuálnym prístupom k hostiteľským zdrojom prostredníctvom hypervízora. Všeobecne platí, že VM poskytujú prostredie s viacerými zdrojmi, ako väčšina aplikácií potrebuje.

Virtualny stroj

Inštalácia dockera na Ubuntu

Najskôr si odinštalujeme ak máme nainštalovanú starú verziu docker alebo docker-engine

$ sudo apt-get remove docker docker-engine docker.io

Obsah / var / lib / docker /, vrátane obrázkov, kontajnerov, zväzkov a sietí, sa zachová. Balik docker má pod ubuntu nazýva Docker CE (community edition).

Nastavenie repozitára

Pred inštaláciou aplikácie Docker CE prvýkrát na nový počítač musíte nastaviť repozitár Docker. Potom môžete nainštalovať a aktualizovať Docker z repozitára.

  1. Update the apt package index:
$ sudo apt-get update

Nainštalujeme si baliky pre podporu ssl spojenia, curl:

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

3. Pridáme Docker GPG key:

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

4. Pridáme stable repozitar.

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

Inštalácia Docker CE

  1. Aktualizujeme si baliky
$ sudo apt-get update

2. Instalacia poslednej stable verzie

$ sudo apt-get install docker-ce

Ak potrebujete nainštalovať specifickú verziu dockera, môžete použiť príkaz

$ sudo apt-get install docker-ce=<VERSION>

Spustenie prvého kontainera a zároven aj overenie, či všekto beží ako má

$ sudo docker run hello-world

Tento príkaz načíta testovací image a spustí ho v kontajneri. Keď kontajner beží, vypíše informačnú správu a skončí.

Aby mohli príkaz docker používať užívatelia bez sudo, je potrebné vytvoriť si groupu docker

$ sudo groupadd docker

Následne sa do tejto groupy mozu pridať užívatelia. Pre pridanie samého seba do groupy môžete použiť príkaz

$ sudo usermod -aG docker $USER

Teraz nám už beží kontainer. Ak potrebujeme spustiť konkrétnu službu, stačí si na dockerhube najst potrebny config, alebo názov prostredia a docker si inštanciu stiahne a spustí ju. Ak si chceme napríklad spustiť elasticsearch stačí nám spustiť príkaz

$docker run elasticsearch:6.4.2

Docker nám automaticky stiahne image a spustí kontainer.

Užitočné docker príkazy

V ďalšej časti sa pozrieme na vytvaranie si vlastných image a konfigurácie vlastných nastaveni