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.

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ů.

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.
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.
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.

