“Docker, Docker, Docker ” to jsme používali donedávna.
Docker je bezpochyby stále velmi populární. Ale jak víme v IT průmyslu, vývoj probíhá rychle. Takže teď uslyšíme Buildah, Podman, CRI-O, Skopeo .
Pokud chcete přirovnat k analogii – máme různé druhy bobulí, jako jsou černé bobule, borůvky, maliny, ale jednou se někdo rozhodne pro borůvky. Tedy mezi Buildah, Podman, CRI-O Rozhodl jsem se vybrat buildah. Proč? Protože je to stejně zajímavé jako jiné kontejnerové platformy.
Pojďme se ponořit do Buildahu!
Co je Buildah?
Buildah je nástroj příkazového řádku pro vytváření obrázků Open Container Initiative (OCI). Lze jej použít s Docker, Podman, Kubernetes – podle toho, který je váš oblíbený kontejnerový nástroj!
Buildah se používá k vytváření, sestavování, správě a spouštění obrázků kontejnerů i kontejnerů.
S Buildah vytvoříte pracovní kontejner buď z obrázku, nebo od začátku. Můžete také vytvořit obrázek z pracovního kontejneru nebo pomocí Dockerfile. Obrázky můžete vytvářet ve formátu OCI nebo ve formátu upstream Docker. Kontejnery a obrázky můžete upravovat a mazat.
Nejzajímavější na Buildahu je, že nepotřebuje démona, aby fungoval. Řekněte tedy ne #bigfatdaemons. Neexistence démona konkrétně dává jiskry, pokud jde o nepřetržitou integraci a nepřetržité doručování za účelem vytváření kontejnerů.
Žádný démon také znamená, že můžete odstranit démona Docker pomocí Buildah a vytvořit obrazy kontejnerů. Ale to neznamená, že Buildah nelze začlenit do Dockeru. Protože pomocí Dockerfile můžete vytvářet, spravovat a spouštět image kontejneru od Buildah. Působivé, že?
Instalace Buildah v systému Linux
Podívejme se, jak si ušpinit ruce pomocí Buildah. Balíčky pro Buildah jsou dostupné pro Fedoru a CentOS. Můžete je snadno nainstalovat pomocí správce balíčků vaší distribuce Linuxu. Zde uvedu některé z běžných:
Chcete-li nainstalovat Buildah na Fedoru, použijte
dnf install buildah -y
Chcete-li nainstalovat Buildah na CentOS nebo RedHat:
yum install buildah -y
Chcete-li nainstalovat Buildah na Ubuntu a Debian, můžete použít oficiální PPA poskytované Project Atomic.
sudo apt update
sudo apt install -y software-properties-common
sudo add-apt-repository -y ppa:projectatomic/ppa
sudo apt install buildah
Jakmile je Buildah nainstalována, je čas si s ním hrát.
Základní příkazy pro použití Buildah
Zde je několik základních příkazů pro začátek s buildah.
Chcete-li znát verzi Buildah.
buildah --version
Úplně počátečním úkolem je stáhnout obrázek kontejneru z veřejných nebo soukromých úložišť. K vytažení obrázku buildah používá proměnnou „from“. proměnná „from“ je stejná jako v Dockerfile. Rozdíl je v tom, že v Dockeru specifikujeme proměnnou ‚from‘ v Dockerfile, kde v Buildah předáváme proměnnou přes příkazový řádek.
buildah from ubuntu
Ve výše uvedeném příkazu je Ubuntu můj obrázek kontejneru. Po úspěšném stažení bitové kopie založené na Ubuntu na konci výstupu uvidíte – „ubuntu-working-container“.
Poté, co víte, že jste úspěšně stáhli obrázek, můžete nyní chtít zobrazit seznam obrázků, které jste stáhli. Předtím se ale možná ptáte:„Kde jsou tyto obrázky uloženy?“. Vytažený obrázek se uloží na samotném hostiteli.
buildah images
IMAGE NAME IMAGE TAG IMAGE ID CREATED AT SIZE
docker.io/library/ubuntu latest 94e814e2efa8 Mar 12, 2019 00:20 91.4 MB
docker.io/library/fedora latest d09302f77cfc Mar 12, 2019 00:20 283 MB
Pokud již znáte příkazy Dockeru, možná jste si všimli podobnosti v příkazech Docker a Buildah. Například v Dockeru k zobrazení seznamu vytažených obrázků používáme příkaz ‚docker images‘.
Zde je příkaz pro zobrazení seznamu běžících kontejnerů. Jakmile je v Buildahu dokončeno vytažení obrázku kontejneru, kontejner se spustí. Pokud porovnáme s Dockerem, po natažení obrázku musíme spustit obrázek pomocí ‚docker run‘ a poté se spustí pouze kontejner.
CONTAINER ID BUILDER IMAGE ID IMAGE NAME CONTAINER NAME
1063320d2dc0 * 94e814e2efa8 docker.io/library/ubuntu:latest ubuntu-working-container
978a399e0aa7 * d09302f77cfc docker.io/library/fedora:latest fedora-working-container
Pokud chcete vyčistit a odstranit všechny běžící kontejnery, proveďte níže uvedený příkaz opatrně. Protože jakmile provedete příkaz, vaše kontejnery budou odstraněny. Výsadou, kterou dostáváme v buildah oproti Dockeru, je, že nám Docker nedovolí odstranit běžící kontejner, ale Buildah ano. Při používání Dockeru musíme nejprve zastavit kontejner a teprve poté můžeme obrázek odstranit.
buildah rm --all
Pokud se zaseknete u nějakého příkazu, je tu možnost –help.
buildah --help
Podívejme se na některé případy použití Buildah, abychom začali s praktickou implementací, začneme s jednoduchým. A jakmile najdete tempo s Buildah, můžete nalít svou kreativitu a dělat zajímavé věci.
Vytvoření obrázku kontejneru webového serveru Apache [Hands On]
Vyzkoušejte, co jste se právě naučili, pomocí ukázkového projektu Buildah.
Co si myslíte, co bude potřeba k tomu, aby webový server Apache běžel uvnitř kontejneru?
Samozřejmě obrázek, běžící kontejner a co ještě? No, hlavní věc, kterou budeme potřebovat, je – musíme nainstalovat balíček httpd do kontejneru. Ach! jak to uděláme? Bez obav. To vám řeknu.
Nejprve natáhněte obraz distribuce Linuxu. Vyberte si, která je vaše oblíbená. Stáhl jsem základní obrázek CentOS.
buildah from centos
Nyní nainstalujte httpd do kontejneru CentOS. Můžete to udělat pomocí tohoto příkazu:
buildah run centos-working-container yum install httpd -y
Uvidíte výstup podobný tomuto.
Udělali jsme to, že jsme nainstalovali balíček httpd, aniž bychom se dostali dovnitř kontejneru. Je to jako nastavovat součásti vašeho kola, aniž byste museli vjet do garáže. Ve výše uvedeném výstupu příkazu můžete vidět, že balíček byl nainstalován před námi. Buildah nepodvádí 😉
Nyní vytvoříme vlastní soubor index.html.
echo "Linux Handbook is interesting !" > index.html
Zkopírujte svůj vlastní soubor index.html do cesty k adresáři /var/www/html
buildah copy centos-working-container index.html /var/www/html/index.html
4e955fea0268518cbaa500409dfbec88f0ecebad28d84ecbe250baed97dba889
Určitě se ptáte, odkud se vzal /var/www/html? A proč jsme zkopírovali soubor index.html do této cesty k adresáři?
Když nainstalujeme balíček httpd, vytvoří se adresář /var/www/html. /var/www/html
je pouze výchozí kořenová složka webového serveru.
Abychom mohli spustit kontejner, musíme nakonfigurovat vstupní bod pro kontejner.
buildah config --entrypoint "/usr/sbin/httpd -DFOREGROUND" centos-working-container
Možnost „-DFOREGROUND“ se používá spolu s „/usr/sbin/httpd“ ke spuštění httpd. „-DFOREGROUND“ dělá to, že způsobí, že proces httpd/apache běží v popředí místo toho na pozadí. Výhodou procesu httpd, který NEběží na pozadí, je to, že můžete vidět protokoly ladění na konzole. Pokud nepoužijeme volbu „-DFOREGROUND“, server apache se spustí a hned poté se zastaví.
Nyní musíme uložit vše, co jsme udělali uvnitř kontejneru. závazek udělá to za nás.
buildah commit centos-working-container Linux-Handbook
Obraz Linux-Handbook je k dispozici a můžete jej odeslat do registru, abyste jej mohli použít.
buildah images
IMAGE ID IMAGE NAME CREATED
AT SIZE
9110ae7f579f docker.io/library/centos:latest
Mar 31, 2019 14:36 234.7 MB
49bd5ec5be71 docker.io/library/Linux-Handbook:latest
Apr 4, 2019 17:28 427.7 MB
Takže vše připraveno, abyste si ušpinili ruce od Buildah?
Napsal Servesha Dudhgaonkar