Výukový program Docker pro začátečníky: Základy, Architecture, Kontejnery

⚡ Chytré shrnutí

Docker je kontejnerizační platforma, která balí aplikace a jejich závislosti do přenosných, lehkých kontejnerů. Tento přehled vysvětluje architekturu Dockeru, instalaci na Ubuntu, základní příkazy a jak se kontejnery liší od tradičních virtuálních počítačů pro rychlejší doručování softwaru.

  • 🐳 Kontejnerizace: Docker virtualizuje na úrovni operačního systému, takže kontejnery sdílejí jádro hostitele a využívají méně zdrojů než virtuální počítače.
  • 🧱 Archistruktura: Dockerův engine (dockerd), obrazy, registry a kontejnery tvoří architekturu klient-server, která je základem každého pracovního postupu Dockeru.
  • ???? Obrázky a kontejnery: Obrázek je šablona pouze pro čtení, zatímco kontejner je spuštěná kopie a jeden obrázek může spustit mnoho kontejnerů.
  • 🗄️ Registry: Docker Hub ukládá veřejné i soukromé image, což vám poskytuje miliony obrázků připravených k použití, které můžete načíst a spustit.
  • ⚙️ Instalace: On Ubuntu Přidáte repozitář Docker APT a klíč GPG a poté nainstalujete balíček docker-ce pomocí apt-get.
  • ⌨️ Základní příkazy: Spravujte kontejnery pomocí příkazů docker pull, run, start, stop, ps, stats a images z příkazového řádku.

Tutoriál Dockeru pro začátečníky, který zahrnuje architekturu a instalaci. Ubuntua základní příkazy kontejneru

Docker je jednou z nejpopulárnějších kontejnerizačních platforem používaných v moderním devops a cloudové pracovní postupy. Tento tutoriál Dockeru pro začátečníky vysvětluje, co je Docker, jak funguje architektura Dockeru a jak ho nainstalovat na Ubuntua základní příkazy používané ke správě imagí a kontejnerů.

Co je to Docker?

přístavní dělník je platforma pro vývoj softwaru pro virtualizaci, která umožňuje běh více operačních systémů na stejném hostiteli. Pomáhá vám oddělit infrastrukturu od aplikací, abyste mohli software rychle dodávat. Na rozdíl od hypervizorů, které se používají k vytváření virtuálních strojů (VM), Docker provádí virtualizaci na systémové úrovni pomocí jednotek nazývaných Docker kontejnery.

Kontejnery Docker běží nad hostitelským operačním systémem, jak je znázorněno na obrázku níže. To zlepšuje efektivitu i zabezpečení. Na stejné infrastruktuře můžete také spustit více kontejnerů než virtuálních počítačů, protože kontejnery spotřebovávají méně zdrojů.

Virtualizace v Docker vs Hypervisor
Virtualizace v Docker vs Hypervisor

Na rozdíl od virtuálních počítačů, které mohou komunikovat přímo s hostitelským hardwarem (například ethernetový adaptér, který vytváří další virtuální adaptéry), kontejnery Docker běží v izolovaném prostředí nad hostitelským operačním systémem. I když váš hostitel běží Windows, můžete spustit Linux obrázky uvnitř kontejnerů s pomocí Hyper-V, který automaticky vytvoří malý virtuální počítač pro virtualizaci základního obrazu.

Nyní, když víte, co je Docker, podívejme se na hlavní důvody, proč si ho týmy vybírají.

Proč používat Docker?

Zde jsou klíčové důvody pro použití Dockeru:

  • Docker je software používaný pro virtualizaci, který umožňuje více operační systémy běžet na stejném hostiteli.
  • Docker je aplikace typu klient-server, což znamená, že klienti komunikují se serverem.
  • Obrazy Dockeru fungují jako „zdrojový kód“ pro kontejnery; používáte je k jejich sestavení.
  • Docker podporuje dva typy registrů: veřejné a soukromé.
  • Kontejnery jsou organizační jednotky Dockeru. Jednoduše řečeno, obraz je šablona a kontejner je kopie této šablony, takže ze stejného obrazu můžete spouštět více kontejnerů.

Tyto výhody plynou ze způsobu, jakým je Docker navržen. Následující část rozebírá architekturu Dockeru a její základní komponenty.

přístavní dělník Architecture

V tomto tutoriálu o kontejnerech Docker se nyní podíváme na hlavní komponenty architektury Dockeru.

přístavní dělník ArchiKomponenty struktury: engine, obrazy, registry a kontejnery

přístavní dělník Architecture

Docker Engine

Docker je aplikace typu klient-server, což znamená, že máme klienty, kteří předávají požadavky na server. Dockerův démon s názvem dockerd je Dockerův engine, který reprezentuje server. Démon a klienti mohou běžet na stejném nebo vzdáleném hostiteli a komunikují prostřednictvím binárního souboru klienta z příkazového řádku a plnohodnotného souboru. RESTful API který interaguje s Dockerdem.

Docker obrázky

Docker obrazy jsou „zdrojovým kódem“ pro naše kontejnery; používáme je k jejich sestavování. Obrazy mohou mít předinstalovaný software, což urychluje nasazení. Jsou přenositelné a můžete použít existující obrazy nebo si vytvořit vlastní.

Registry Docker

Docker ukládá obrazy, které vytváříme, do registrů. Existují veřejné a soukromé registry. Docker má veřejný registr s názvem Docker hub, kde si také můžete soukromě ukládat obrázky. Docker Hub obsahuje miliony obrázků, které můžete ihned začít používat.

Docker kontejnery

Kontejnery jsou organizační jednotky Dockeru a jeden z jeho základních konceptů. Když vytvoříme obraz a spustíme ho, spouštíme ho uvnitř kontejneru. Analogie s kontejnerem se používá kvůli přenositelnosti softwaru, který v něm běží: můžete jej přesouvat, „přepravovat“, upravovat, spravovat, vytvářet nebo ničit, stejně jako nákladní lodě manipulují se skutečnými kontejnery.

Jednoduše řečeno, obrázek je šablona a kontejner je kopie této šablony. Můžete mít více kontejnerů (kopií) stejného obrázku.

Interakce mezi těmito různými komponentami ukazuje, jak technologie kontejnerů Dockeru funguje společně. Příkazy jako docker pull a docker run, které si probereme později, vám umožňují spravovat tento pracovní postup.

S ohledem na architekturu si nainstalujeme Docker, abyste si tyto komponenty mohli sami vyzkoušet.

Jak nainstalovat Docker na Linux/Ubuntu

Níže je uveden podrobný postup instalace Dockeru v systému Linux/Ubuntu:

Krok 1) K instalaci Dockeru potřebujete DEB balíčky od Docker týmu. Nejprve několik předpokladů. Ubuntu Balíčky jsou povinné. K jejich instalaci použijte níže uvedený příkaz.

$ sudo apt-get install \
apt-transport-https \
ca-certificates curl \
software-properties-common

*znak „\“ není nutný, používá se pro nový řádek, pokud chcete, můžete příkaz napsat bez použití „\“ pouze na jeden řádek.

Krok 2) Přidejte oficiální klíč Docker GPG s otiskem prstu. Pro zadání klíče GPG použijte níže uvedený příkaz Docker.

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Krok 3) Dále přidejte repozitář Docker APT pomocí níže uvedeného příkazu.

$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"

Můžete být vyzváni k potvrzení, že chcete přidat repozitář a nechat si GPG klíč automaticky přidat k vašemu hostiteli. Příkaz lsb_release by měl naplnit Ubuntu distribuční verzi vašeho hostitele.

Krok 4) Po přidání klíče GPG aktualizujte zdroje APT pomocí níže uvedeného příkazu Docker.

$ sudo apt-get update

Nyní můžete nainstalovat samotný balíček Docker.

Krok 5) Jakmile jsou zdroje APT aktualizovány, spusťte instalaci balíčků Dockeru na Ubuntu pomocí níže uvedeného příkazu Dockeru.

$ sudo apt-get install docker-ce

Výše uvedený příkaz nainstaluje Docker a další požadované balíčky. Před verzí Docker 1.8.0 byl název balíčku lxc-docker a mezi verzemi Docker 1.8 a 1.13 byl název balíčku docker-engine.

POZNÁMKA: Docker pro Windows Vyžaduje Windows 10 Pro nebo Enterprise verze 14393, popř Windows Server 2016 RTM, ke spuštění.

Jak používat Docker pomocí základních příkazů Dockeru

Zde je návod, jak používat Docker s několika základními příkazy Dockeru.

Nejzákladnější příkaz, který byste měli spustit po instalaci Dockeru, je docker info, jak již bylo zmíněno.

$ sudo docker info

Měli byste získat výsledek podobný následujícímu.

Používání Dockeru pomocí základních příkazů Dockeru a zobrazení výstupu informací o Dockeru

Jak je ukázáno ve výše uvedeném příkladu Dockeru, můžeme vidět informace o kontejnerech Dockeru: kolik z nich je spuštěných, pozastavených nebo zastavených a kolik imagí bylo staženo. Nyní si pojďme vytvořit náš první image.

$ sudo docker pull alpine

Tímto příkazem říkáme Dockeru, aby stáhl obraz Alpine a načetl ho z veřejného registru v nejnovější verzi, která je nastavena ve výchozím nastavení.

*alpine je minimální obraz Dockeru založený na Alpine Linuxu s úplným indexem balíčků a velikostí pouze 5 MB.

Pokud chceme spustit obraz jako kontejner, použijeme následující příkaz.

$ sudo docker run -i -t alpine /bin/bash

Spuštění příkazu nás přesměruje přímo do terminálu Alpine. Příkaz -i udržuje STDIN otevřený z kontejneru, i když k němu nejste připojeni; tento perzistentní standardní vstup je jedna polovina toho, co potřebujete pro interaktivní shell. Příkaz -t je druhá polovina a instruuje Docker, aby kontejneru přiřadil pseudo-tty. Společně nám poskytnou interaktivní shell v novém kontejneru. Kontejner ukončíme jednoduchým příkazem exit.

Nyní si v tomto tutoriálu o základech Dockeru můžeme zkusit spustit Ubuntu obrázek.

$ sudo docker run -it ubuntu /bin/bash

Všimněte si, že Docker kontroluje přítomnost obrazu lokálně a pokud tam není, obraz se automaticky stáhne z knihovny obrázků. Opět máme spuštěný interaktivní shell. Kontejnery můžeme také pojmenovávat během jejich spouštění.

$ sudo docker run –-name our_container -it ubuntu /bin/bash

Pak opět ukončíme. Můžeme také spustit kontejner, který jsme dříve vytvořili, bez interaktivního shellu.

$ sudo docker start container_name

A kontejner zastavíme zápisem docker stop container_name.

$ sudo docker stop container_name

Pokud chceme vidět všechny spuštěné kontejnery, jednoduše spustíme následující.

$ docker ps

U všech kontejnerů přidáváme na konec stejného příkazu „-a“, podobně jako docker ps -a. Tento příkaz zobrazuje ID kontejneru, použitý obraz, kdy byl vytvořen, stav jeho spuštěnosti, vystavené porty a náhodně vygenerovaný název pro snazší správu.

Když spouštíme kontejnery, často chceme vědět, kolik zdrojů používají. K tomuto účelu můžeme použít následující příkaz.

$ docker stats

Můžete si také prohlédnout, které obrázky jste si stáhli lokálně, spolu s informacemi o nich.

$ sudo docker images

Příkaz ve výše uvedeném příkladu Dockeru zobrazí každý obraz Dockeru se značkou zobrazující verzi obrazu, charakteristické ID obrazu, datum vytvoření a velikost obrazu.

Abychom pochopili, proč jsou kontejnery takovým vylepšením, je užitečné podívat se na vývoj virtualizace.

Co je virtualizace?

Dříve bylo nasazení služby pomalé a bolestivé. Vývojáři psali kód a provozní tým ho pak nasazoval na holých počítačích, kde museli hlídat verze knihoven, záplaty a jazykové kompilátory, aby kód fungoval. Pokud se vyskytly chyby nebo nedostatky, proces začal znovu od začátku: vývojáři problém opravili a provozní tým službu znovu nasadil.

Věci se zlepšily s vytvořením hypervizorů. Hypervizory běží na více virtuálních strojů, nebo virtuálních počítačů, na stejném hostiteli, které mohou být spuštěné nebo vypnuté. Virtuální počítače výrazně zkrátily dobu čekání na nasazení kódu a opravu chyb, ale skutečnou převratnou změnou byly kontejnery Docker.

Popularitu Dockeru také pohánějí orchestrační nástroje, které spravují kontejnery ve velkém měřítku, jako například KubernetesNež budeme pokračovat, zde je rychlý přehled nejdůležitějších příkazů Dockeru.

Důležité příkazy Dockeru

Níže jsou uvedeny důležité příkazy Dockeru:

Příkaz Description
informace o dockeru Informační příkaz
docker vytáhnout Stáhněte si obrázek
docker spusťte -i -t název_obrázku /bin/bash Spustit obrázek jako kontejner
docker start our_container Spusťte kontejner
docker stop název_kontejneru Zastavte kontejner
docker ps Seznam všech spuštěných kontejnerů
docker statistiky Informace o kontejneru
obrázky doků Seznam stažených obrázků
Vyčištění dockeru Zabijte všechny běžící kontejnery.

Přečtěte si také tyto Otázky a odpovědi na pracovní pohovor Docker pro začátečníky i zkušené profesionály.

Nejčastější dotazy

Kontejner Docker sdílí jádro hostitelského operačního systému a izoluje pouze aplikaci, takže je lehký a spouští se během několika sekund. Virtuální stroj obsahuje plnohodnotný hostovaný operační systém, což ho činí větším, pomalejším na spouštění a náročnějším na zdroje.

Dockerfile je prostý textový skript obsahující instrukce jako FROM, RUN, COPY a CMD. Docker tyto instrukce přečte a automaticky vytvoří obraz systému. Každý řádek přidá vrstvu, což vám umožní reprodukovat stejné prostředí na jakémkoli počítači.

Docker Compose definuje a spouští vícekontejnerové aplikace pomocí jednoho YAML souboru. Každou službu, síť a svazek popíšete jednou a poté vše spusťte příkazem docker compose up. Je ideální pro lokální vývoj a testování propojených služeb.

Docker sestavuje a spouští jednotlivé kontejnery, zatímco Kubernetes Organizuje mnoho kontejnerů v rámci clusteru. Kubernetes přidává automatické škálování, samoopravu a vyvažování zátěže. V praxi Docker balí aplikaci a Kubernetes ji spravuje v produkčním prostředí.

Docker Engine je bezplatný a open source pod licencí Apache 2.0. Docker Desktop je zdarma pro osobní použití, vzdělávání a malé firmy, ale větší společnosti potřebují placené předplatné. Docker Hub nabízí bezplatné i placené plány pro hostování obrázků.

Docker běží nativně na Linuxu a je podporován na Windows a macOS prostřednictvím Docker Desktopu. Na Windows a Mac, Docker používá lehký virtuální stroj ke spuštění linuxového jádra, které kontejnery vyžadují. Většina obrazů kontejnerů je založena na Linuxu.

Asistenti s umělou inteligencí generují soubory Dockerfile, soubory Docker-compose a příkazy CLI z příkazů v prostém jazyce. Také čtou protokoly sestavení a chyby kontejnerů, vysvětlují jejich příčinu a navrhují opravy. Před spuštěním vždy zkontrolujte vygenerovanou konfiguraci, zda obsahuje správné tagy obrázků, cesty a zabezpečení.

Ano. GitHub Copilot a ChatGPT dokáže vytvářet návrhy souborů Dockerfiles a Compose z krátkého komentáře nebo popisu. Zrychlují standardně používané funkce, ale měli byste si ověřit základní obrazy, verze a osvědčené postupy, protože vygenerované úryvky mohou používat zastaralé výchozí hodnoty.

Shrňte tento příspěvek takto: