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

Kdy a proč používat Docker

<šablona x-if=visible><šablona x-if=$isMobile()>

Co je Docker?

Od svého vydání v roce 2012 se Docker stal jednou z nejrychleji rostoucích technologií v oblasti devops a vývoje webu. Jako každá nová technologie je však stále ve vývoji, má určitá omezení a nehodí se pro každý projekt. Tato příručka poskytuje přehled výhod a nevýhod Dockeru, abyste se mohli rozhodnout, zda by byl dobrým doplňkem vašeho projektu.

Základní informace o konceptech a terminologii Dockeru najdete v naší příručce Úvod do Dockeru.

Výhody Dockeru

  1. Reprodukovatelnost :Podobně jako Java aplikace, která poběží úplně stejně na jakémkoli zařízení schopném provozovat Java Virtual Machine, je zaručeno, že kontejner Docker bude identický na jakémkoli systému, na kterém lze spustit Docker. Přesné specifikace kontejneru jsou uloženy v Dockerfile. Distribucí tohoto souboru mezi členy týmu může organizace zaručit, že všechny obrázky vytvořené ze stejného souboru Dockerfile budou fungovat identicky. Navíc prostředí, které je konstantní a dobře zdokumentované, usnadňuje sledování vaší aplikace a identifikaci problémů.

  2. Izolace :Závislosti nebo nastavení v kontejneru neovlivní žádné instalace nebo konfigurace ve vašem počítači nebo v jiných kontejnerech, které mohou být spuštěny. Použitím samostatných kontejnerů pro každou komponentu aplikace (například webový server, frontend a databáze pro hostování webové stránky) se můžete vyhnout konfliktním závislostem. Můžete také mít více projektů na jednom serveru, aniž byste se museli starat o vytváření konfliktů ve vašem systému.

  3. Zabezpečení :S důležitými upozorněními (diskutovanými níže) může mít oddělení různých součástí velké aplikace do různých kontejnerů bezpečnostní výhody:pokud je jeden kontejner kompromitován, ostatní zůstanou nedotčeny.

  4. Docker Hub :Pro běžné nebo jednoduché případy použití, jako je zásobník LAMP, možnost uložit obrázky a odeslat je do Docker Hub znamená, že již je k dispozici mnoho dobře udržovaných obrázků. Schopnost rychle stáhnout předem vytvořený obraz nebo sestavit z oficiálně spravovaného souboru Dockerfile může tento druh procesu nastavení extrémně zrychlit a zjednodušit.

  5. Správa životního prostředí :Docker usnadňuje údržbu různých verzí, například webových stránek pomocí nginx. Můžete mít samostatný kontejner pro testování, vývoj a produkci na stejném Linode a snadno jej nasadit do každého z nich.

  6. Nepřetržitá integrace :Docker funguje dobře jako součást kontinuálních integračních kanálů s nástroji jako Travis, Jenkins a Wercker. Pokaždé, když je váš zdrojový kód aktualizován, mohou tyto nástroje uložit novou verzi jako obrázek Dockeru, označit ji číslem verze a odeslat do Docker Hub a poté ji nasadit do produkce.

Kdy použít Docker

Pokud vaše aplikace spadá do jedné nebo více z následujících kategorií, Docker může být vhodnou volbou:

  1. Učení se novým technologiím :Chcete-li začít s novým nástrojem, aniž byste museli trávit čas instalací a konfigurací, nabízí Docker izolované a jednorázové prostředí. Mnoho projektů udržuje obrazy Docker s již nainstalovanými a nakonfigurovanými aplikacemi. Pokud chcete například vyzkoušet distribuovaný systém sledování, jako je Zipkin, můžete mít pracovní nastavení na localhost jednoduše spuštěním:

    sudo docker run -d -p 9411:9411 openzipkin/zipkin
    
  2. Základní případy použití :Vytahování obrázků z Docker Hub je také dobrým řešením, pokud je vaše aplikace dostatečně základní nebo standardní, aby fungovala s výchozí bitovou kopií Dockeru. Případy, jako je hostování webu pomocí zásobníku LAMP, použití reverzního proxy nebo nastavení serveru Minecraft, mají často oficiální nebo dobře podporovaný obrázek dostupný na DockerHubu. Pokud je výchozí konfigurace v těchto obrazech přijatelná pro vaše potřeby, pak stažení obrazu může ušetřit spoustu času, který by jinak strávil nastavením vašeho prostředí a instalací potřebných nástrojů.

  3. Izolace aplikací :Pokud chcete na jednom serveru spouštět více aplikací, uchováváte součásti každé aplikace v samostatných kontejnerech, abyste předešli problémům se správou závislostí.

  4. Týmy vývojářů :Pokud máte vývojáře, kteří pracují s různými nastaveními, Docker poskytuje pohodlný způsob, jak mít místní vývojová prostředí, která se co nejvíce shodují s produkčním prostředím, aniž byste museli používat ssh do vzdálené schránky.

Kdy Docker nepoužívat

Jsou také chvíle, kdy Docker není nejlepším řešením. Zde je několik příkladů:

  1. Vaše aplikace je složitá a nejste/nemáte správce systému. U velkých nebo komplikovaných aplikací nebude použití předem připraveného souboru Dockerfile nebo stažení existujícího obrázku dostatečné. Vytváření, úpravy a správa komunikace mezi více kontejnery na více serverech je časově náročný úkol.

  2. Výkon je pro vaši aplikaci zásadní. Docker ve srovnání s virtuálními stroji září, pokud jde o výkon, protože kontejnery sdílejí hostitelské jádro a neemulují celý operační systém. Docker však ukládá náklady na výkon. Procesy běžící v kontejneru nebudou tak rychlé jako ty, které běží na nativním OS. Pokud potřebujete ze svého serveru dostat co nejlepší výkon, možná se budete chtít vyhnout Dockeru.

  3. Nechcete mít potíže s upgradem. Docker je nová technologie, která je stále ve vývoji. Chcete-li získat nové funkce, budete pravděpodobně muset často aktualizovat verze a zpětná kompatibilita s předchozími verzemi není zaručena.

  4. Zabezpečení je pro vaši aplikaci zásadní. Jak bylo uvedeno výše, udržování různých součástí aplikace v samostatných kontejnerech poskytuje určité výhody zabezpečení, protože kompromis v jednom kontejneru nemůže snadno ovlivnit zbytek vašeho systému. Kontejnerizační přístup Dockeru však přináší své vlastní bezpečnostní výzvy, zejména u složitějších aplikací. Tyto problémy jsou řešitelné, ale vyžadují pozornost zkušeného bezpečnostního inženýra. (Odkazy na diskuse o těchto problémech naleznete v části Další informace.

  5. Více operačních systémů. Protože kontejnery Docker sdílejí operační systém hostitelského počítače, pokud chcete spouštět nebo testovat stejnou aplikaci na různých operačních systémech, budete muset místo Dockeru použít virtuální počítače.

  6. Shluky. Kontejnery Docker na samostatných serverech lze kombinovat do clusteru s Docker Swarm. Docker však nenahrazuje nástroje pro poskytování nebo automatizaci, jako jsou Ansible, SaltStack a Chef. Kromě toho Docker nedávno oznámil podporu pro Kubernetes, což naznačuje, že Docker Swarm nemusí být dostatečný jako samostatný správce clusteru.

Měli byste používat kontejnery Docker?

Docker se stal extrémně oblíbeným způsobem konfigurace, ukládání a sdílení serverových prostředí pomocí kontejnerů. Z tohoto důvodu může být instalace aplikace nebo dokonce velkého zásobníku často tak jednoduchá, jako spuštění docker pull nebo docker run . Oddělení funkcí aplikace do různých kontejnerů také nabízí výhody v oblasti zabezpečení a správy závislostí.

Docker však nenahrazuje systémové inženýrství nebo správu konfigurací a jeho přístup má nevýhody. Vývojáři by měli odolat pokušení kontejnerizovat každou aplikaci, kterou vytvoří, jednoduše proto, že Docker je oblíbené a uživatelsky přívětivé řešení. Jako u každého nástroje by měly být požadavky každého projektu pečlivě prozkoumány, než se rozhodnete, zda použít Docker.

Další informace

Další informace o tomto tématu můžete získat v následujících zdrojích. Přestože jsou poskytovány v naději, že budou užitečné, vezměte prosím na vědomí, že nemůžeme ručit za přesnost nebo aktuálnost externě hostovaných materiálů.

  • Docker
  • Docker Hub
  • Kdy Docker nepoužívat
  • 5 bezpečnostních problémů při používání Dockeru
  • 8 pravidel zabezpečení Docker, která je třeba dodržovat
  • Váš software je bezpečnější v kontejnerech Docker

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

  2. Linux – proč používáme Su – a nejen Su?

  3. Kdy a proč bych měl používat Apt-get Update?

  1. Jak a proč používat vzdáleného hostitele dockeru

  2. Jak nainstalovat a používat Docker Compose na CentOS

  3. Proč Deis a co to je?

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

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

  3. Proč používáme su – a nejen su?