Úvod
Docker je jednou z nejpopulárnějších platforem založených na kontejnerech, která přitahuje pozornost mnoha vývojových týmů. Stále více společností přechází na Docker kvůli jeho spolehlivosti, výkonu a funkčnosti.
Proto je nezbytné porozumět tomuto open-source softwaru pro kontejnerizaci a základním komponentám, které jej pohánějí.
V tomto článku se dozvíte, co je Docker, jaké jsou nejdůležitější součásti Dockeru a jaké jsou výhody a nevýhody používání platformy.
Co je Docker?
Docker je open-source platforma pro kontejnerizaci používaná pro vývoj, nasazení a správu aplikací v odlehčených virtualizovaných prostředích zvaných kontejnery.
Používá se především jako platforma pro vývoj softwaru pro vývoj distribuovaných aplikací, které efektivně fungují v různých prostředích. Tím, že je softwarový systém agnostický, se vývojáři nemusí starat o problémy s kompatibilitou. Balení aplikací do izolovaných prostředí (kontejnerů) také usnadňuje vývoj, nasazení, údržbu a používání aplikací.
Protože Docker využívá virtualizaci k vytváření kontejnerů pro ukládání aplikací, může se koncept zdát podobný virtuálním strojům. Ačkoli obě představují izolovaná virtuální prostředí používaná pro vývoj softwaru, existují důležité rozdíly mezi kontejnery a virtuálními počítači. Nejdůležitější rozdíl je v tom, že kontejnery Docker jsou lehčí, rychlejší a efektivnější z hlediska zdrojů než virtuální stroje.
Instalace Dockeru je jednoduchá. Pokyny krok za krokem naleznete na adrese:
Jak nainstalovat Docker na UbuntuJak nainstalovat Docker na CentOSJak nainstalovat Docker na DebianCo jsou kontejnery?
Docker kontejnery jsou odlehčená virtualizovaná runtime prostředí pro spouštění aplikací. Každý kontejner představuje balíček softwaru, který obsahuje kód, systémové nástroje, runtime, knihovny, závislosti a konfigurační soubory potřebné pro spuštění konkrétní aplikace. Jsou nezávislé a izolované od hostitele a dalších instancí běžících na hostiteli.
Kontejnery jsou založeny na obrázcích Dockeru. Kontejner vytvoříte spuštěním obrazu na Docker Engine. Protože se jedná o nejběžnější výrazy Dockeru, ujistěte se, že rozumíte rozdílu mezi obrázky Docker a kontejnery Docker.
Stejný hardware může hostit více kontejnerů. Na rozdíl od virtuálních strojů se kontejnery virtualizují na aplikační úrovni. Proto sdílejí jádro OS s hostitelem a virtualizují nad ním operační systém. To znamená, že spotřebováváte méně prostředků a udržujete odlehčená virtuální prostředí, která se rychle a snadno konfigurují.
Kromě toho, že jsou kontejnery agnostické, lze kontejnery rychle a snadno spouštět, konfigurovat, přidávat, zastavovat a odebírat. Vývojáři mohou pracovat na stejné aplikaci v různých prostředích s vědomím, že to neovlivní její výkon. Navíc mohou sdílet data mezi kontejnery pomocí datových objemů.
Chcete-li maximalizovat výkon kontejneru, nezapomeňte implementovat doporučené postupy pro kontejnery Docker.
K čemu se Docker používá?
Docker se používá pro:
- Spouštění více úloh s menším počtem zdrojů.
- Izolace a segregace aplikací.
- Standardizace prostředí pro zajištění konzistence napříč vývojovými a cykly vydání.
- Zefektivnění životního cyklu vývoje a podpora pracovních postupů CI/CD.
- Vývoj vysoce přenosných pracovních úloh, které lze provozovat na platformách s více cloudy.
Navíc se používá jako:
- Nákladově efektivní alternativa k virtuálním strojům.
- Systém správy verzí pro aplikaci.
Stručná historie Dockeru
Docker byl představen jako open-source projekt v březnu 2013 na PyConu. Než se projekt zaměřil na kontejnery, začal v roce 2008 jako řešení Platform as a Service s názvem DotCloud. Mnoho vývojářů však projevilo velký zájem konkrétně o základní technologii DotCloud – softwarové kontejnery.
Od té doby Docker přitahuje pozornost mnoha poskytovatelů technologií a významných společností.
Základní součásti Docker
Nástroj se skládá z několika komponent, z nichž každá hraje důležitou roli v platformě.
Docker Engine
Docker Engine (DE) je nainstalován na hostitelském počítači a představuje jádro systému Docker. Jedná se o odlehčený runtime systém a základní technologii klient-server, která vytváří a spravuje kontejnery.
Docker Engine se skládá ze tří komponent:
- Server - démon Docker (dockerd), který je zodpovědný za vytváření a správu kontejnerů.
- Rest API - naváže komunikaci mezi programy a Dockerem a instruuje dockerd, co má dělat.
- Rozhraní příkazového řádku (CLI) - používá se pro spouštění příkazů Docker.
Obrázky dockeru
Obrázky dockeru jsou šablony používané pro stavbu kontejnerů. Podobně jako snímky virtuálních strojů jsou i obrazy Dockeru neměnné soubory pouze pro čtení, které se skládají ze zdrojového kódu, knihoven, závislostí, nástrojů a jakýchkoli dalších souborů nezbytných pro spuštění aplikace. Každý obrázek je vytvořen ze souboru Dockerfile, který obsahuje konkrétní pokyny pro vytvoření konkrétního obrázku Docker.
Jakmile zvládnete vytváření obrázků Docker z Dockerfiles, můžete vytvářet obrázky a vlastní kontejnery jednodušší a rychlejší.
Kromě urychlení sestavení Dockeru jsou obrazy užitečné také pro zvýšení opětovné použitelnosti a v podstatě snížení využití disku. Protože chcete, aby byly vaše kontejnery lehké a rychlé, je důležité udržovat malé obrázky. Využití světlejšího základu obrázků, vyhýbání se zbytečným vrstvám a použití souboru .dockerignore je jen několik způsobů, jak udržet obrázky Docker malé.
Dockerfile
Dockerfile je skript, který se skládá ze sady pokynů, jak vytvořit image Docker. Tyto pokyny zahrnují specifikaci operačního systému, jazyků, proměnných prostředí, umístění souborů, síťových portů a dalších komponent potřebných ke spuštění bitové kopie. Všechny příkazy v souboru jsou seskupeny a provedeny automaticky.
Obrázek má více vrstev. Jakmile spustíte obraz Dockeru za účelem vytvoření kontejneru, přidá se nová vrstva pro čtení a zápis. To je někdy označováno jako zásobníková vrstva. Dodatečná vrstva vám umožňuje provádět změny v základním obrázku, které můžete zavázat k vytvoření nového obrázku Dockeru pro budoucí použití.
Docker Hub
Docker Hub je největší cloudové úložiště obrázků kontejnerů poskytované společností Docker. Poskytuje více než 100 000 obrázků dostupných pro použití vytvořených projekty s otevřeným zdrojovým kódem, dodavateli softwaru a komunitou Docker.
Platforma vám umožňuje rychle odesílat vaše aplikace kamkoli, spolupracovat se spoluhráči a automatizovat sestavování pro rychlejší integraci do vývojového kanálu.
Stejně jako GitHub vývojáři tlačí a stahují obrázky kontejnerů z Docker Hub a rozhodují se, zda je ponechají veřejné nebo soukromé.
Svazky dockeru
Místo přidávání nových vrstev do obrazu je lepším řešením pro zachování dat vytvořených běžícím kontejnerem použití svazků Docker. Tento užitečný nástroj umožňuje uživatelům ukládat data, sdílet je mezi kontejnery a připojovat je k novým. Svazky dockeru jsou nezávislé na životním cyklu kontejneru, protože jsou uloženy na hostiteli.
Existují různé způsoby, jak vytvořit a připojit svazek Docker při spouštění kontejneru. Další informace najdete v části Docker Volumes:How to Create &Get Started.
Docker Compose
Při spouštění a správě více kontejnerů současně je Docker Compose užitečným nástrojem navrženým pro zjednodušení procesu. Řetězuje několik kontejnerů potřebných ke spolupráci a řídí je pomocí jediného koordinovaného příkazu.
Docker Compose se používá ke spouštění, spouštění, komunikaci a zavírání kontejnerů pomocí příkazu. To se provádí pomocí souboru YAML, který konfiguruje služby aplikace.
Nainstalujte Docker Compose na CentOSInstall Docker Compose na UbuntuDocker Desktop
Docker Desktop, dříve známý jako Docker pro Windows a Docker pro Mac, je aplikace, která vám umožní začít vytvářet a spouštět kontejnery na Windows a Mac během několika minut. Jde o jednoduchý způsob instalace a nastavení celého vývojového prostředí Docker. Zahrnuje Docker Engine, Docker Compose, klienta Docker CLI, Docker Content Trust, Kubernetes a Credential Helper.
Nástroj se používá k vytváření a sdílení kontejnerizovaných aplikací a mikroslužeb ve více jazycích a rámcích na jakékoli cloudové platformě.
Chcete-li se dozvědět více, podívejte se na oficiální dokumentaci Docker na Docker Desktop.
Výhody dockeru
- Konzistence . Docker zajišťuje spolehlivost, že vaše aplikace běží stejně ve více prostředích. Vývojáři pracující na různých počítačích a operačních systémech mohou spolupracovat na stejné aplikaci bez problémů s prostředím.
- Automatizace . Platforma vám umožňuje automatizovat únavné, opakující se úkoly a plánovat úlohy bez ručního zásahu.
- Rychlejší nasazení . Protože kontejnery virtualizují operační systém, při spouštění instancí kontejnerů nedochází k žádné době spouštění. Proto můžete nasazení provést během několika sekund. Kromě toho můžete sdílet stávající kontejnery a vytvářet nové aplikace.
- Podpora CI/CD . Docker dobře spolupracuje s postupy CI/CD, protože urychluje nasazení, zjednodušuje aktualizace a umožňuje týmovým kolegům efektivně spolupracovat.
- Vrácení změn a kontrola verze obrázku . Kontejner je založen na obrázku Docker, který může mít více vrstev, z nichž každá představuje změny a aktualizace na základně. Tato funkce nejen urychluje proces sestavování, ale také poskytuje kontrolu verzí nad kontejnerem. To umožňuje vývojářům vrátit se k předchozí verzi, pokud to bude potřeba.
- Modularita . Kontejnery jsou nezávislá a izolovaná virtuální prostředí. V aplikaci s více kontejnery má každý kontejner specifickou funkci. Oddělením aplikace mohou vývojáři snadno pracovat na konkrétní části, aniž by museli odstranit celou aplikaci.
- Úspornost zdrojů a nákladů . Protože kontejnery neobsahují hostované operační systémy, jsou mnohem lehčí a menší než virtuální počítače. Zabírají méně paměti a opakovaně využívají komponenty díky objemům dat a obrázkům. Kontejnery také nevyžadují velké fyzické servery, protože mohou běžet výhradně v cloudu.
Nevýhody dockeru
- Žádné grafické rozhraní . Docker není nejlepší volbou, pokud chcete spouštět aplikace, které vyžadují grafické rozhraní. Je to hlavně pro hostování aplikací, které běží na příkazovém řádku.
- Problémy se zabezpečením . Přestože Docker poskytuje zabezpečení izolováním obsahu od hostitele a od sebe navzájem, existují určitá bezpečnostní rizika specifická pro Docker. Při práci s kontejnery může nastat mnoho potenciálních problémů se zabezpečením, proto si osvojte nejlepší bezpečnostní postupy Dockeru, které vám mohou pomoci předcházet útokům a porušení oprávnění.
- Křivka učení . Dokonce i vývojáři, kteří mají zkušenost s infrastrukturou virtuálních počítačů, potřebují nějaký čas, aby si zvykli na koncepty Docker a na to, jak fungují. Pokud přecházíte na Docker, nezapomeňte vzít v úvahu nezbytnou křivku učení.