GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak používat Docker v praxi (část 1 - Úvod)

Část 1:Úvod do terminologie

Předmluva

Není neobvyklé, že ranní uživatelé nově zaváděných konceptů a technologií jsou zcela zmateni, když mohou zásadně změnit způsoby vývoje a poskytování služeb. Zvlášť, když všichni mluví o něčem jako Docker a o tom, jak je to úžasné a měnící se hry. K tomuto zmatku dochází, když věci zkoušíme na začátku a spěcháme je rovnou otestovat, aniž bychom pochopili celý koncept a pozadí této nově představené technologie.

To je důvod, proč jste možná opustili celý trend linuxových kontejnerů, nebo jste si přečetli nějaký kontroverzní článek od příznivců ano a odpůrců. V této první části ze série článků se pokusíme vše vyjasnit a uvést vše na správnou perspektivu pro každého vývojáře, systémové administrátory, Q/A inženýry nebo dokonce nadšence, kteří potřebují jen tu správnou inspiraci k používání linuxových kontejnerů. a řešit jejich speciální IT problémy.

Začneme od začátku, s nezbytným popisem historických událostí a konceptů a poté ukážu, jak můžeme začít pracovat s kontejnery Docker. Tímto způsobem budete schopni porozumět tomu, „co vedlo k vytvoření kontejnerů“, „jaké jsou stavební kameny“ a „jak fungují“.


Jak kontejnery vznikly

Po mnoho let byly servery používány tak, jak jsou, s jedinou hardwarovou konfigurací, obsahující jediný operační systém (zkráceně OS), k poskytování tisíců webových stránek a některých raných verzí podnikového softwaru na stejném počítači.

Aby společnosti dosáhly potřebného škálování, musely zakoupit nový hardware a pečlivě naplánovat kroky pro každou novou implementaci. V tomto časovém období byla automatizace na počátku a většina konfigurací byla prováděna ručně.

Virtualizace

Pak přišla virtualizace, která lidem umožnila využívat stejný hardwarový server, takže mohli vytvořit více virtuálních serverů pro různé účely a prodávat je jednotlivě. To nejen, že enormně snížilo náklady na vlastnictví serverového hardwaru, ale také poskytlo prostředky pro automatizaci a snadnou správu stovek serverových instancí.

Virtualizace je ve skutečnosti sestavení hardwarových komponent, jako je CPU, RAM, disky, síťové karty atd., které jsou emulovány speciálním softwarem. Je to jako postavit PC s jeho základními komponentami zmíněnými výše v rámci operačního systému a sestavit je tak, aby fungovaly, jako by to byl skutečný PC. Tímto způsobem se virtuální PC stane "hostem" uvnitř skutečného PC, které se svým operačním systémem nazývá hostitel.

Přestože byla hardwarová virtualizace představena zhruba před 10 lety, rozšířila se její použití na různých typech serverů vývojáři a správci systému pomocí funkce KVM (Kernel-based Virtual Machine), která je zabudována v jádře Linuxu od roku 2007. S „VT“ od společnosti Intel -x" a rozšíření AMD "AMD-V", která pomáhají vytvářet libovolný počet virtualizovaných operačních systémů (omezených pouze hardwarovými prostředky), by každý vývojář mohl levně vytvořit více virtuálních strojů (zkráceně VM) s OS, a to i s různými verzemi jim. Tímto způsobem jsou schopni otestovat své aplikace, aniž by si museli kupovat celou novou soupravu nebo jich více, v závislosti na operačním systému, který potřebují.

Jednou z velkých výhod virtualizace je možnost vytvářet snímky. Snímek je stav virtuálního stroje v přesném okamžiku. Můžete si to představit jako „zamrzlý“ stav virtuálního stroje v konkrétním čase. Tímto způsobem může vývojář nebo sysadmin vytvořit virtuální stroj, nainstalovat konkrétní OS a nástroje, které potřebuje, a vytvořit z celé věci snímek. Poté může začít testovat, konfigurovat nebo provádět jakékoli úkoly, které potřebuje provést, a poté se okamžitě a kdykoli vrátit k předchozímu snímku.

Virtuální stroje lze také migrovat z jednoho hostitelského počítače na druhý a pokračovat ve svém pracovním stavu bez jakékoli speciální konfigurace. Je to proto, že celý virtuální stroj jsou ve skutečnosti nějaké velké soubory, které se obvykle nazývají obrázky. Můžete si představit obrázky, jako je soubor ISO vaší oblíbené distribuce Linuxu. Protože soubor ISO obsahuje všechny základní komponenty pro skutečné spuštění celého OS z živého USB/DVD, stejně jako obraz virtuálního stroje obsahuje OS a komponenty virtuálního hardwaru.

Vše výše uvedené vytvořilo celé odvětví hostingových společností pro virtuální privátní servery (VPS), kde zákazníci mohli okamžitě spustit předem nakonfigurované obrazy serverů pro jakýkoli účel. Tito poskytovatelé VPS mají obvykle 10 nebo 20 snímků virtuálních počítačů na hlavním hostitelském serveru, které jsou klonovány několikrát na žádost zákazníka, aby jim poskytli virtuální servery, které potřebují

Kontejnery

Jak si dokážete představit, virtuální stroj je celý operační systém běžící uvnitř hostitelského operačního systému. Hostující operační systémy, i když jsou izolované, sdílejí a využívají hardwarové prostředky hostitelského počítače. Někdy existuje několik hostovaných operačních systémů, které používají stejný celý zásobník konkrétního operačního systému.

Tato situace vytvořila příležitost pro vývojáře linuxového jádra a hackery přijít s nápadem, který se nazývá odlehčená virtualizace procesů. Namísto použití celého operačního systému by tedy mohli omezit „nepotřebné“ součásti virtuálního operačního systému a vytvořit jeho minimální verzi. To vedlo k vytvoření LXC (Linux Containers).

Než se ponoříme hlouběji, měli bychom zmínit, že odlehčená virtualizace procesů není nic nového. Solaris má zóny, BSD má vězení a existují další podobné technologie jako OpenVZ. Problém je v tom, že často mění svůj název nebo účel, když se stejný základní koncept používá na jiných projektech. Je pravda, že ne všechny jsou stejné, ale základní principy jsou v podstatě stejné. Všichni chtějí izolovat, nasadit a vytvořit jednorázový způsob poskytování softwarových služeb, aniž by se museli obtěžovat přestavováním všeho a pokaždé zdola nahoru.

Projekt LXC se od výše uvedených virtuálních strojů liší tím, že se jedná o prostředí virtualizace na úrovni operačního systému, nikoli o prostředí pro virtualizaci hardwaru. Oba dělají totéž, ale LXC poskytuje virtualizaci na úrovni operačního systému prostřednictvím virtuálního prostředí, které má svůj vlastní proces a síťový prostor, namísto vytváření plnohodnotného virtuálního stroje. V důsledku toho má virtuální operační systém LXC minimální požadavky na prostředky a spouští se během několika sekund.

Jak můžete vidět na následujícím obrázku, virtuální Ubuntu LXC nalevo využívá ve výchozí instalaci 11 MB.

Docker

Jako obvykle se věci nezastavily jen odstraněním nepotřebných částí OS. Různé technologie ožily tím, že posunuly hranice odlehčené virtualizace procesů ještě dále. V roce 2013 představili vývojáři dotCloud (společnost, která později změnila svůj název na Docker Inc.) Docker.

Docker je open source engine, jehož primárním cílem je automatizace nasazení aplikací uvnitř softwarových kontejnerů a automatizace virtualizace na úrovni operačního systému v Linuxu. Docker kontejner, na rozdíl od virtuálního počítače a lxc, nevyžaduje ani neobsahuje samostatný operační systém. Místo toho se spoléhá na funkčnost linuxového jádra a používá izolaci zdrojů.

Kontejnery dockeru jsou vytvořeny z obrázků dockeru (pamatujte si snímky). Dokovací kontejner si můžete představit jako živý stav webové aplikace spuštěné ze souboru iso. Ale tentokrát iso, které je v našem příkladu ekvivalentem obrazu dockeru, obsahuje pouze aplikaci a její závislosti.

Jedna skvělá funkce dockeru, kterou probereme ve druhé části, je soubor docker. Soubor dockeru je recept, který obsahuje všechny nezbytné kroky, které jsou potřeba k vytvoření obrazu dockeru. Existují doslova tuny ukotvitelných souborů „připravených k použití“, které si můžete přizpůsobit a používat je tak, jak jsou.

Shrnutí

Jak si dokážete představit, rozsah přechodu od plnohodnotných serverů k virtualizaci OS a poté ke kontejnerům spočívá v odstranění zátěže budování, nasazení a údržby celého operačního systému, když to, co potřebují, je pouze aplikační vrstva.

Tímto úvodem jsme se vám pokusili představit některé zásadní události, které nás vedly k vytvoření kontejnerů Docker. Také jsem se pokusil zjednodušit některé jeho koncepty, abyste pochopili rozdíly mezi různými virtualizačními technologiemi a kde jsou použitelné.

Druhá část, která bude publikována příští týden, přesně ukáže, jak můžeme prakticky instalovat a používat kontejnery Docker, takže zůstaňte naladěni.


Ubuntu
  1. Jak používat Docker Compose

  2. Jak použít Dockerfile k vytvoření Docker Image

  3. Jak používat příkaz Docker Inspect

  1. Jak nastavit a používat soukromý registr dockerů

  2. Jak nainstalovat a používat Docker v Ubuntu 20.04

  3. Jak nakonfigurovat docker pro použití proxy

  1. NFS Docker Volumes:Jak vytvořit a používat

  2. Jak nainstalovat a používat Docker na Ubuntu 20.04

  3. Jak nainstalovat a používat Docker na Ubuntu 18.04