GNU/Linux >> Znalost Linux >  >> Panels >> Docker

Co je Docker (a Linux kontejnery?)

Před chvílí, kolem vydání linuxového jádra verze 3, byl koncept jmenných prostorů a kontejnerizace představen prostřednictvím modulu nazvaného lxc (Linuxové kontejnery).

Myšlenka kontejneru je trochu podobná myšlence virtuálního stroje. Například s virtualizací máte server („hostitel“), na kterém běží něco jako KVM nebo VMware. Stroje běžící pod ním se nazývají hosté. Jsou to plně samostatné počítače běžící na hostiteli.

Kontejnery posouvají tento koncept na další úroveň. Kontejnery pomáhají zejména vývojářům (ale také správcům systémů) rychle nasazovat aplikace nebo služby. Kontejnery jsou velmi malé linuxové stroje, které běží jako normální linuxový proces (v uživatelském prostoru ). Průměrný linuxový server má velikost gigabajtů a má jádro plné praktických ovladačů pro všechny druhy hardwaru a tak dále. Kontejner má naopak velikost jen několik set megabajtů. VM se spustí během několika minut, kontejner se spustí, včetně jeho zamýšlené aplikace, během několika sekund nebo méně. Běží přesně tak, jak byste očekávali, že běží jakákoli normální aplikace pro Linux – jako proces můžete vidět pomocí příkazu ps.

Níže uvedený diagram od lidí z CoreOS dobře ukazuje vztah mezi kontejnery a operačním systémem. Nahoře můžete vidět normální linuxový server, na kterém běží všechny obvyklé služby, které si dokážete představit, jako je Java, webový server nginx atd.  pravděpodobně bude také spuštěno několik dalších aplikací.

Na obrázku 2 můžete vidět příklad operačního systému, který je zaměřen na kontejnerizaci. Má pouze omezené, minimální aplikace, jako je spuštěný ssh server. Všechny ostatní aplikace nyní běží ve zcela izolovaných kontejnerech.

Prchavé bytosti

Kontejnery jsou ideálně vyrobeny tak, aby byly jednoúčelové povahy:představte si, že máte aplikaci, která používá JBoss a PostgreSQL. Pravděpodobně budete mít kontejner pro komponenty JBoss i PostgreSQL. Oba kontejnery jsou od sebe izolovány, ale je možné je propojit, takže spolu mohou mluvit. Kontejnery jsou také navrženy tak, aby byly pomíjivé:jakmile splní svůj účel, odfouknete ho, vždy můžete během několika sekund roztočit další. To také znamená, že data uložená v kontejneru  nejsou vytrvalý. Pokud chcete, aby data, jako jsou databáze nebo webové stránky, zůstala zachována, můžete je umístit do exportovaného úložného svazku na hostitelském serveru. V osvědčeném bezpečnostním postupu byste svůj základní obraz aktualizovali novými záplatami nebo procedurami zpřísnění zabezpečení a poté spustili aplikaci. Poté byste svůj kontejner z minulého týdne zničili a příští týden byste použili nový, bezpečnější kontejner.

Kontejnery se skvěle hodí k celému SaaS (software jako servisní model) a také umožňují vývojářům a provoznímu personálu přátelštější spolupráci (čtěte způsobem DevOps). Ale nepředbíhejme zde, nástroje kulturní problémy nevyřeší, to je celé ‚jiné téma pro jiný web!

Docker

Docker je tu už nějakou dobu. Docker přinesl Linuxu to, co lxc nedokázal:snadné použití. Jakmile vývojáři zjistili, jak mocné je jen roztočit dokovací kontejner na svém notebooku a mít jistotu, že bude fungovat úplně stejným způsobem na serveru někde jinde, a to s největší lehkostí, rychle se to stalo samozrejmostí.

Docker má své kritiky, někteří (jako tým coreOS) se domnívají, že Docker není dostatečně zabezpečený a stávají se příliš komercializovaní (proto vytvořili rkt jako konkurenci Dockeru), ale milují jej nebo nenávidí, Docker má obrovské množství fanoušků, a to nejen ve společnostech, které byste očekávali, jako jsou Amazon a Google.

Další čtení

Více o kontejnerizaci si můžete přečíst na následujících webových stránkách:

LinuxContainers.org

Docker:Co je Docker?

Amazon AWS:Co jsou Kontejnery?

Rkt (vyslovováno Rocket), z CoreOS


Docker
  1. Co je Podman a jak nainstalovat Podman v Linuxu

  2. Jaký je rozdíl mezi kontejnery LXC, LXD a Docker

  3. Jaký je rozdíl mezi linuxovým kontejnerem a obrázkem?

  1. Demystifikace jmenných prostorů a kontejnerů v Linuxu

  2. Jak exportovat a importovat kontejnery Docker

  3. Jak vytvářet, zobrazovat a mazat kontejnery Docker v systému Linux

  1. Co je Podman a jak se liší od Dockeru?

  2. Jak nainstalovat Docker a spustit kontejnery Docker v Ubuntu

  3. Proč Deis a co to je?