V této příručce probereme, co je Toolbox a jak vytvořit a spravovat kontejnerizované vývojové prostředí pomocí Toolbox na Fedora Linux.
Úvod
V posledních letech se virtualizace kontejnerů Linuxu hodně rozmohla. Ve skutečnosti je novou generací virtualizace kontejnerizace.
V dnešní době vývojáři aplikací většinou používají jako své preferované vývojové prostředí kontejnery. Existuje mnoho nástrojů pro vytváření a správu linuxových kontejnerů. Podman , Docker , Vagrant jsou některé oblíbené aplikace pro správu kontejnerů.
Dnes budeme diskutovat o dalším nástroji s názvem Toolbox což usnadňuje použití kontejnerového prostředí pro každodenní vývoj softwaru.
Co je Toolbox?
Toolbox je interní nástroj od Fedory k vytvoření kontejnerizovaného prostředí příkazového řádku na vašem základním systému Fedory.
Je to užitečné zejména pro nastavení prostředí pro vývoj softwaru pro použití a vytváření, kde lze nainstalovat a používat vývojové nástroje a knihovny.
Toolbox je speciálně vyvinut pro OSTree systémy, jako je Fedora Core OS a Fedora Silverblue . Jak již možná víte, systémy založené na OSTree jsou neměnné.
Toolbox je postaven na obrázcích kontejnerů OCI a Podman. Nevyžaduje žádný root
oprávnění k nasazení kontejnerů. Dobrá věc je, že instalace Toolbox a použití je velmi snadné a snadno zapamatovatelné!
Proč Toolbox?
Skutečným cílem neměnného OS je odradit od instalace softwaru na hostitelský systém a povzbudit uživatele k instalaci softwaru do kontejnerů.
Na rozdíl od systémů založených na OSTree jsou kontejnery plně proměnlivé. Do kontejnerů tedy můžete nainstalovat své oblíbené vývojářské a ladicí nástroje, editory a sady SDK. Do hostitelského systému se nic neinstaluje.
Abychom to řekli laicky, můžeme nasadit proměnlivý kontejner na neměnný hostitelský operační systém s pomocí Toolbox.
Jak Toolbox funguje?
Ve výchozím nastavení Toolbox vytváří kontejnery na základě vašeho aktuálního systému. Pokud je například váš základní systém Fedora 35, pak toolbox vytvoří kontejner založený na Fedoře 35. V tomto kontejneru můžete použít správce balíčků jako yum
nebo dnf
k instalaci preferovaných aplikací. Můžete také vytvářet kontejnery založené na jiných verzích Fedory.
Můžete spustit více než jeden kontejner najednou a začít pracovat na různých projektech současně. Jakmile budete s kontejnerem hotovi, jednoduše jej smažte a vytvořte nový, kdykoli budete chtít. Opět platí, že hostitelský systém není nijak ovlivněn. Tímto způsobem můžeme udržovat čistý hostitelský OS. To také výrazně zabrání nepořádku a zkrátí proces reinstalace hostitelského OS.
Nainstalujte Toolbox na Fedoru
Toolbox je dodáván s předinstalovanými edicemi Fedora Silverblue 30 a novějšími. Na pracovní stanici Fedora jej můžete nainstalovat pomocí dnf
nebo yum
správci balíčků:
$ sudo dnf install toolbox
Nebo,
$ sudo yum install toolbox
Začínáme s Toolbox na Fedora Silverblue
Toolbox poskytuje malý počet příkazů pro vytváření, seznam, zadávání a odstraňování kontejnerů.
1. Zobrazit nápovědu k panelu nástrojů
Pokud jste v Toolboxu nováčkem, je lepší zobrazit nápovědu k Toolboxu, abyste měli přehled o tom, co jednotlivé příkazy dělají. Chcete-li zobrazit nápovědu Toolbox, použijte některý z následujících příkazů:
$ toolbox --help
$ toolbox help
$ toolbox -h
Nyní začněme s vytvářením nových kontejnerů.
2. Vytvořte nový kontejner
Chcete-li vytvořit nový kontejner na základě vaší aktuální verze OS Fedora, jednoduše spusťte:
$ toolbox create
Tento příkaz vyhledá základní obraz, který se má použít k sestavení kontejneru z vašeho místního systému. Pokud není nalezen žádný místní obrázek, budete vyzváni ke stažení příslušného obrázku. Zadejte y a klávesou ENTER stáhněte obrázek.
Ukázkový výstup:
Image required to create toolbox container.
Download registry.fedoraproject.org/fedora-toolbox:33 (500MB)? [y/N]: y
Created container: fedora-toolbox-33
Enter with: toolbox enter
Toolbox stáhne obraz odpovídající verzi operačního systému vašeho aktuálního hostitelského systému z registru Fedory a vytvoří nový kontejner na základě staženého obrazu. Obrázky jsou obvykle oříznuté verze skutečných distribucí.
2.1. Vytvořte kontejnery s vlastním názvem
Panelu nástrojů automaticky přiřadí jedinečný název (např. fedora-toolbox-33
) do nově vytvořeného kontejneru.
Pokud chcete vytvořit kontejner s vlastním názvem dle vašeho výběru, použijte --container
, -c
příznak následovaný názvem kontejneru, jak je uvedeno níže:
$ toolbox create --container mytoolbox-f33
Nebo krátce:
$ toolbox create -c mytoolbox-f33
Zde mytoolbox-f33
je název kontejneru.
3. Vytvořte nový kontejner na základě konkrétní verze OS
Jak jsem již zmínil, Toolbox vytváří kontejnery na základě aktuální verze OS. Pokud například používáte Fedoru 34, Toolbox vytvoří kontejner založený na obrazu Fedory 34.
Můžete však vytvářet kontejnery i na základě jiných verzí. Vytvořil jsem kontejner Fedory 32 na mé edici Fedora 33 silverblue pomocí následujícího příkazu:
$ toolbox create --release f32
Nebo zakrátko
$ toolbox create -r f32
4. Seznam kontejnerů
Chcete-li vypsat všechny lokálně dostupné kontejnery ve vašem systému, spusťte:
$ toolbox list
Ukázkový výstup:
IMAGE ID IMAGE NAME CREATED
9659c2039e64 registry.fedoraproject.org/f32/fedora-toolbox:32 4 months ago
675192cc4238 registry.fedoraproject.org/fedora-toolbox:33 4 weeks ago
CONTAINER ID CONTAINER NAME CREATED STATUS IMAGE NAME
2cfb48d6a6c5 fedora-toolbox-32 4 months ago exited registry.fedoraproject.org/f32/fedora-toolbox:32
1f709997b871 fedora-toolbox-33 27 minutes ago configured registry.fedoraproject.org/fedora-toolbox:33
Jak můžete vidět ve výše uvedeném výstupu, mám dva kontejnery, konkrétně fedora-toolbox-32
a fedora-toolbox-33
v mém systému.
Horní část výstupu zobrazuje podrobnosti o základních obrázcích použitých k vytvoření kontejnerů, jako je ID obrázku, název obrázku a kdy byly tyto obrázky vytvořeny. Ve spodní části uvidíte podrobnosti o kontejnerech, jako je ID kontejneru, název kontejneru, kdy byl kontejner vytvořen a stav kontejneru.
Můžete také zobrazit buď podrobnosti o kontejneru nebo podrobnosti o obrázku samostatně. Chcete-li uvést pouze podrobnosti o kontejneru, použijte --containers
, -c
možnost:
$ seznam toolbox --containers ID KONTEJNERU NÁZEV KONTEJNERU VYTVOŘENÝ STAV NÁZEV OBRÁZKU 2cfb48d6a6c5 fedora-toolbox-32 před 4 měsíci spuštěn registry.fedoraproject.org/f32/fedora-toolbox:32 1f709997b871 fedora hours-toolbox3 registry.fedoraproject.org/fedora-toolbox:33
Chcete-li zobrazit pouze obrázky, použijte --images
, -i
příznak:
$ seznam nástrojů --images ID OBRÁZKU NÁZEV OBRÁZKU VYTVOŘENO 9659c2039e64 registry.fedoraproject.org/f32/fedora-toolbox:32 před 4 měsíci 675192cc4238 registry.fedoraproject.org/fedora-toolbox:33> před 4 týdnyVezměte prosím na vědomí, že názvy kontejnerů a názvy obrázků budou vypadat téměř stejně, kromě poslední části v jejich názvu.
Název kontejneru obvykle obsahuje pomlčku (-) před poslední částí svého názvu (např.
fedora-toolbox-33
) a název obrázku má dvojtečku (:) (např.fedora-toolbox:33
).5. Vstupte do kontejnerů
Kontejnery jsme již vytvořili, ale nevstoupili jsme do nich. Vstupme tedy do kontejneru pomocí příkazu:
$ toolbox enter
Jakmile zadáte kontejner, před výzvou shellu je diamant symbol, jak je znázorněno na následujícím výstupu:
⬢[[email protected] ~]$
Všimli jste si symbolu diamantu na levé straně výzvy? Znamená to, že jste uvnitř kontejneru.
Kontejnery se hladce integrují s vaším aktuálním operačním systémem. Uvnitř každého kontejneru najdete své stávající uživatelské jméno a oprávnění.
Ke svému domovskému adresáři a několika dalším umístěním můžete přistupovat stejným způsobem jako z hostitelského systému. Můžete také přistupovat k systému i relaci D-Bus, systémovému deníku a Kerberos atd.
Každý kontejner obsahuje běžné nástroje příkazového řádku, včetně správce balíčků (např.
DNF
na Fedoře). Můžete tedy nainstalovat a otestovat jakýkoli software uvnitř kontejneru.Například následující příkaz nainstaluje všechny potřebné vývojové nástroje:
$ sudo yum groupinstall "Development Tools"
5.1. Zadejte do konkrétního kontejneru
Když spustíte
toolbox enter
příkaz bez jakýchkoli voleb otevře výchozí kontejner panelu nástrojů. Výchozí kontejner je ten, který je založen na vašem hostitelském OS.Pokud chcete otevřít jiný kontejner, výslovně uveďte jeho název, jak je uvedeno níže:
$ toolbox enter -c fedora-toolbox-32
Zde
-c
se používá k označení názvu kontejneru afedora-toolbox-32
je název kontejneru.6. Ukončete panel nástrojů
Až budete s kontejnerem hotovi, jednoduše napište
exit
k odhlášení z kontejneru.$ exit
7. Spouštějte příkazy v kontejnerech, aniž byste do nich vstupovali
Pozoruhodnou vlastností Toolboxu je, že můžete spouštět příkazy na kontejneru, aniž byste je museli zadávat. Následující příkaz zobrazí distribuční vydání výchozího kontejneru z hostitelského systému:
$ toolbox run cat /etc/redhat-release Fedora release 33 (Thirty Three)
Když spustíte
toolbox run
příkaz bez jakýchkoli voleb, provede příkazy na výchozím kontejneru. Příkazy můžete také spouštět na jiných kontejnerech zadáním jejich názvu pomocí--container
,-c
příznak:$ toolbox run -c fedora-toolbox-32 cat /etc/redhat-release Fedora release 32 (Thirty Two)
8. Zastavte provoz kontejnerů
Poté, co opustíte kontejner, bude pokračovat v provozu, dokud jej nezastavíte. Neexistuje žádný přímý příkaz panelu nástrojů, který by zastavil běžící kontejner. Můžeme však použít
podman
příkaz k zastavení kontejnerů sady nástrojů:$ podman container stop fedora-toolbox-33
Pamatujte, že Toolbox používá podman pod pokličkou.
9. Odeberte kontejnery a obrázky sady nástrojů
Pokud kontejner nebo jeho základní obrázek nechcete, můžete se jich jednoduše zbavit, jak je uvedeno níže.
Před odstraněním kontejneru se ujistěte, že jste opustili tento kontejner.
Chcete-li odstranit kontejner, spusťte:
$ toolbox rm fedora-toolbox-32
Výše uvedený příkaz odstraní kontejner s názvem
fedora-toolbox-32
.Chcete-li násilně odstranit kontejner, i když je spuštěný, použijte
--force
,-f
příznak:$ toolbox rm -f fedora-toolbox-32
Chcete-li odstranit všechny kontejnery, použijte
--all
,-a
příznak:$ toolbox rm --all
Ověřte, zda je kontejner odstraněn, uvedením dostupných kontejnerů:
$ toolbox list
Podobně můžete odstranit obrazy panelu nástrojů pomocí
toolbox rmi
příkaz jako níže:$ toolbox rmi fedora-toolbox:32
Všimněte si prosím
i
ve výše uvedeném příkazu.rm
příkaz odstraní kontejnery, zatímcormi
příkaz odstraní obrázky. Nezapomeňte také uvést správný název obrázku, který chcete odstranit.Chcete-li odstranit všechny obrázky, použijte
--all
,-a
příznak:$ toolbox rmi --all
Používejte podman ke správě kontejnerů a obrázků sady nástrojů
Protože Toolbox je pouze obal pro podman, můžete přímo používat příkazy podman ke správě kontejnerů.
Chcete-li zobrazit seznam kontejnerů sady nástrojů pomocí příkazu podman, spusťte:
$ podman ps -a
Chcete-li zobrazit seznam obrázků sady nástrojů s podmanem, spusťte:
$ podman images
Spuštění kontejneru:
$ podman start fedora-toolbox-33
Chcete-li zobrazit živé statistiky využití zdrojů všech spuštěných kontejnerů:
$ podman stats
Zastavení kontejneru:
$ podman stop fedora-toolbox-33
Kontrola kontejnerů:
$ podman inspect fedora-toolbox-33
Odebrat kontejner:
$ podman rm <container-name>
Odebrat obrázek:
$ podman rmi <image-name>
K dispozici je mnoho příkazů podman. Všechny dostupné obecné příkazy a možnosti si můžete prohlédnout v sekci nápovědy podman:
$ podman --help
Závěr
Kontejnery nejsou jen pro experimentální a výukové účely, jsou také ideální pro izolované vývojové prostředí, kde můžete pracovat na různých projektech na různých verzích OS. Toolbox výrazně zjednodušuje a zlepšuje správu kontejnerů!