Architektura Docker a její komponenty pro začátečníky

Pojďme se seznámit s architekturou Docker a jejími základními součástmi.

Předpokládám, že máte základní znalosti o Dockeru. Pokud ne, můžete se podívat na tento předchozí článek.

Věřím, že chápete důležitost Dockeru v DevOps. Nyní za tímto fantastickým nástrojem musí být úžasná, dobře promyšlená architektura. ne?

Ale než o tom budu mluvit, dovolte mi představit předchozí a současné virtualizační systémy.

Tradiční vs. virtualizace nové generace

Dříve jsme vytvářeli virtuální stroje a každý VM měl OS, který zabíral spoustu místa a dělal to těžké.

Nyní v případě kontejneru dockeru máte jeden operační systém a prostředky jsou sdíleny mezi kontejnery. Díky tomu je lehký a boty se spustí během několika sekund.

Architektura Docker

Níže je jednoduchý diagram architektury Docker.

Dovolte mi vysvětlit vám součásti architektury dockeru.

Docker Engine

Je základní součástí celého systému Docker. Docker Engine je aplikace, která sleduje architekturu klient-server. Je nainstalován na hostitelském počítači. V Docker Engine jsou tři součásti:

  • Server: Je to docker démon zvaný dockerd. Může vytvářet a spravovat obrázky dockerů. Kontejnery, sítě atd.
  • Rest API: Používá se k instruování démona dockeru, co má dělat.
  • Rozhraní příkazového řádku (CLI): Jedná se o klienta, který se používá pro zadávání příkazů dockeru.
  Jak povolit chytré psaní v Gmailu

Docker klient

Uživatelé Dockeru mohou komunikovat s Dockerem prostřednictvím klienta. Když se spustí jakýkoli příkaz docker, klient je odešle démonu dockerd, který je provede. Docker API používají příkazy Dockeru. Klient Docker může komunikovat s více než jedním démonem.

Registry Docker

Je to místo, kde jsou uloženy obrázky Docker. Může to být veřejný registr dockerů nebo soukromý registr dockerů. Docker Hub je výchozím místem pro obrázky dockerů, veřejný registr jeho obchodů. Můžete také vytvořit a provozovat svůj vlastní soukromý registr.

Když spustíte příkazy docker pull nebo docker run, požadovaný obraz dockeru se stáhne z nakonfigurovaného registru. Když spustíte příkaz docker push, obraz dockeru se uloží do nakonfigurovaného registru.

Docker objekty

Při práci s Dockerem používáte obrazy, kontejnery, svazky, sítě; to vše jsou objekty Docker.

snímky

Obrázky dockeru jsou šablony pouze pro čtení s pokyny k vytvoření kontejneru dockeru. Obraz Dockeru lze stáhnout z centra Docker a použít jej tak, jak je, nebo můžete k základnímu obrazu přidat další pokyny a vytvořit nový a upravený obraz dockeru. Své vlastní obrázky dockeru můžete vytvořit také pomocí souboru docker. Vytvořte dockerfile se všemi pokyny k vytvoření kontejneru a jeho spuštění; vytvoří váš vlastní obrázek dockeru.

  Jak používat novou funkci Deep Linking Google Chrome

Obrázek Dockeru má základní vrstvu, která je pouze pro čtení, a do horní vrstvy lze zapisovat. Když upravíte ukotvitelný soubor a znovu ho sestavíte, v horní vrstvě se znovu vytvoří pouze upravená část.

Kontejnery

Po spuštění bitové kopie dockeru se vytvoří kontejner dockeru. Všechny aplikace a jejich prostředí běží uvnitř tohoto kontejneru. Docker API nebo CLI můžete použít ke spuštění, zastavení nebo odstranění kontejneru dockeru.

Níže je ukázkový příkaz pro spuštění kontejneru ubuntu docker:

docker run -i -t ubuntu /bin/bash

Svazky

Trvalá data generovaná dockerem a používaná kontejnery Docker jsou uložena ve svazcích. Jsou kompletně spravovány dockerem prostřednictvím docker CLI nebo Docker API. Svazky fungují na kontejnerech Windows i Linux. Spíše než uchovávání dat v zapisovatelné vrstvě kontejneru je vždy dobrou volbou použít pro ně svazky. Obsah svazku existuje mimo životní cyklus kontejneru, takže použití objemu nezvětšuje velikost kontejneru.

Ke spuštění kontejneru se svazkem můžete použít parametr -v nebo –mount. V tomto ukázkovém příkazu používáte geekvolume volume s kontejnerem etechblog.cz.

docker run -d --name etechblog.cz  -v geekvolume:/app nginx:latest

sítě

Docker networking je průchod, kterým komunikují všechny izolované kontejnery. V dockeru je hlavně pět síťových ovladačů:

  Jak odebrat kontakty ze sdíleného listu na iPhonu nebo iPadu
  • Bridge: Je to výchozí síťový ovladač pro kontejner. Tuto síť používáte, když vaše aplikace běží na samostatných kontejnerech, tj. více kontejnerech komunikujících se stejným hostitelem dockeru.
  • Host: Tento ovladač odstraňuje síťovou izolaci mezi kontejnery dockeru a hostitelem dockeru. Používá se, když nepotřebujete žádnou síťovou izolaci mezi hostitelem a kontejnerem.
  • Překrytí: Tato síť umožňuje službám roje vzájemnou komunikaci. Používá se, když kontejnery běží na různých hostitelích Dockeru nebo když jsou služby swarm tvořeny více aplikacemi.
  • Žádné: Tento ovladač zakáže veškeré sítě.
  • macvlan: Tento ovladač přiděluje mac adresu kontejnerům, aby vypadaly jako fyzická zařízení. Provoz je směrován mezi kontejnery přes jejich mac adresy. Tato síť se používá, když chcete, aby kontejnery vypadaly jako fyzické zařízení, například při migraci nastavení virtuálního počítače.
  • Závěr

    Doufám, že vám to poskytne představu o architektuře Docker a jejích základních komponentách. Procházejte Docker, abyste se dozvěděli více, a pokud máte zájem o praktické školení, podívejte se na toto Kurz Docker Mastery.

    Užili jste si čtení článku? Co takhle sdílet se světem?