GNU/Linux >> Znalost Linux >  >> Linux

Začínáme s Buildah pro správu linuxových kontejnerů

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


Linux
  1. Začínáme s linuxovými firewally

  2. Začínáme se socatem, víceúčelovým přenosovým nástrojem pro Linux

  3. Začínáme s PostgreSQL na Linuxu

  1. 5 tipů, jak začít se zabezpečením serveru Linux

  2. Začínáme se Sambou pro interoperabilitu

  3. Začínáme s SSH v Linuxu

  1. Začínáme s btrfs pro Linux

  2. Rady pro začátek s GNOME

  3. Linuxové desktopy pro minimalisty:Začínáme s LXQt a LXDE