Wyszukiwanie w witrynie

Pierwsze kroki z Toolboxem na Fedorze Silverblue


Jak korzystać z Toolboxa w Fedorze Linux

W tym przewodniku omówimy czym jest Toolbox oraz jak tworzyć kontenerowe środowisko programistyczne i zarządzać nim przy użyciu Toolbox w Fedorze Linux.

Wstęp

W ostatnich latach wirtualizacja kontenerów w systemie Linux nabrała dużego tempa. Tak naprawdę nową generacją wirtualizacji jest konteneryzacja.

Obecnie twórcy aplikacji najczęściej korzystają z kontenerów jako preferowanego środowiska programistycznego. Istnieje wiele narzędzi do tworzenia kontenerów Linux i zarządzania nimi. Podman, Docker, Vagrant to popularne aplikacje do zarządzania kontenerami.

Dzisiaj omówimy kolejne narzędzie o nazwie Toolbox, które ułatwia korzystanie ze skonteneryzowanego środowiska do codziennego tworzenia oprogramowania.

Co to jest Toolbox?

Toolbox to wewnętrzne narzędzie Fedory umożliwiające tworzenie kontenerowego środowiska wiersza poleceń na podstawowym systemie Fedory.

Jest to szczególnie przydatne do konfigurowania środowiska programistycznego typu „use and rzucaj”, w którym można instalować i używać narzędzi programistycznych i bibliotek.

Toolbox został opracowany specjalnie dla systemów opartych na OSTree, takich jak Fedora Core OS i Fedora Silverblue. Jak być może już wiesz, systemy oparte na OSTree są niezmienne.

Toolbox jest zbudowany na podstawie obrazów kontenerów OCI i Podmana. Do wdrażania kontenerów nie są wymagane żadne uprawnienia root. Dobrze, że instalacja i użytkowanie Toolbox jest bardzo łatwe w użyciu i łatwe do zapamiętania!

Dlaczego Toolbox?

Rzeczywistym celem niezmiennego systemu operacyjnego jest zniechęcenie do instalacji oprogramowania w systemie hosta i zachęcenie użytkowników do instalowania oprogramowania w kontenerach.

W przeciwieństwie do systemów opartych na OSTree, kontenery są w pełni modyfikowalne. Dzięki temu możesz zainstalować w kontenerach swoje ulubione narzędzia do programowania i debugowania, edytory i pakiety SDK. Nic nie zostanie zainstalowane w systemie hosta.

Mówiąc najprościej, możemy wdrożyć zmienny kontener w niezmiennym systemie operacyjnym hosta za pomocą Toolbox.

Jak działa Toolbox?

Domyślnie Toolbox tworzy kontenery w oparciu o bieżący system. Na przykład, jeśli Twoim systemem podstawowym jest Fedora 35, Toolbox utworzy kontener oparty na Fedorze 35. W tym kontenerze możesz używać menedżerów pakietów, takich jak yum lub dnf, aby zainstaluj preferowane aplikacje. Możesz także tworzyć kontenery w oparciu o inne wersje Fedory.

Możesz uruchomić więcej niż jeden kontener na raz i jednocześnie rozpocząć pracę nad różnymi projektami. Gdy skończysz z kontenerem, po prostu go usuń i utwórz nowy, kiedy tylko chcesz. Ponownie, nie ma to żadnego wpływu na system hosta. W ten sposób możemy utrzymać czysty system operacyjny hosta. Pozwoli to również radykalnie uniknąć bałaganu i skrócić proces ponownej instalacji systemu operacyjnego hosta.

Zainstaluj Toolbox na Fedorze

Toolbox jest fabrycznie zainstalowany z Fedorą Silverblue 30 i nowszymi edycjami. Na stacji roboczej Fedory możesz ją zainstalować za pomocą menedżerów pakietów dnf lub yum:

sudo dnf install toolbox

Lub,

sudo yum install toolbox

Pierwsze kroki z Toolboxem na Fedorze Silverblue

Toolbox udostępnia niewielką liczbę poleceń do tworzenia, wyświetlania, wprowadzania i usuwania kontenerów.

1. Wyświetl pomoc przybornika

Jeśli dopiero zaczynasz korzystać z Toolboxa, lepiej wyświetlić sekcję pomocy Toolbox, aby zobaczyć, co robi każde polecenie. Aby wyświetlić pomoc Toolbox, użyj jednego z następujących poleceń:

toolbox --help
toolbox help
toolbox -h

Zacznijmy teraz od stworzenia nowych kontenerów.

2. Utwórz nowy kontener

Aby utworzyć nowy kontener w oparciu o bieżącą wersję systemu operacyjnego Fedora, po prostu uruchom:

toolbox create

To polecenie wyszuka obraz podstawowy, który zostanie użyty do zbudowania kontenera z systemu lokalnego. Jeśli nie zostanie znaleziony żaden obraz lokalny, zostaniesz poproszony o pobranie odpowiedniego obrazu. Wpisz y i klawisz ENTER, aby pobrać obraz.

Przykładowe dane wyjściowe:

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

Utwórz nowy kontener za pomocą przybornika

Toolbox pobierze obraz pasujący do wersji systemu operacyjnego twojego obecnego systemu hosta z rejestru Fedory i utworzy nowy kontener na podstawie pobranego obrazu. Obrazy są zwykle okrojonymi wersjami rzeczywistych dystrybucji.

2.1. Twórz kontenery o niestandardowej nazwie

Toolbox automatycznie przypisze unikalną nazwę (np. fedora-toolbox-33) do nowo utworzonego kontenera.

Jeśli chcesz utworzyć kontener o wybranej przez siebie nazwie, użyj flagi --container, -c, a następnie nazwy kontenera, jak poniżej:

toolbox create --container mytoolbox-f33

Lub krótko:

toolbox create -c mytoolbox-f33

Tutaj mytoolbox-f33 to nazwa kontenera.

3. Utwórz nowy kontener w oparciu o konkretną wersję systemu operacyjnego

Jak już wspomniałem, Toolbox tworzy kontenery w oparciu o aktualną wersję systemu operacyjnego. Na przykład, jeśli używasz Fedory 34, Toolbox utworzy kontener w oparciu o obraz Fedory 34.

Można jednak tworzyć kontenery również w oparciu o inne wersje. Utworzyłem kontener Fedory 32 na mojej Fedorze 33 silverblue, używając następującego polecenia:

toolbox create --release f32

Albo niedługo,

toolbox create -r f32

4. Lista kontenerów

Aby wyświetlić listę wszystkich lokalnie dostępnych kontenerów w systemie, uruchom:

toolbox list

Przykładowe dane wyjściowe:

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

Lista kontenerów przyborników

Jak widać na powyższych wynikach, mam w swoim systemie dwa kontenery, mianowicie fedora-toolbox-32 i fedora-toolbox-33.

Górna część wyników pokazuje szczegóły obrazów podstawowych użytych do utworzenia kontenerów, takie jak identyfikator obrazu, nazwa obrazu i data utworzenia tych obrazów. W dolnej części zobaczysz szczegóły kontenerów, takie jak identyfikator kontenera, nazwa kontenera, data utworzenia kontenera i jego status.

Możesz także osobno wyświetlić szczegóły kontenera lub szczegóły obrazu. Aby wyświetlić tylko szczegóły kontenera, użyj opcji --containers, -c:

toolbox list --containers
 CONTAINER ID  CONTAINER NAME     CREATED       STATUS   IMAGE NAME
 2cfb48d6a6c5  fedora-toolbox-32  4 months ago  running  registry.fedoraproject.org/f32/fedora-toolbox:32
 1f709997b871  fedora-toolbox-33  21 hours ago  running  registry.fedoraproject.org/fedora-toolbox:33

Aby wyświetlić tylko obrazy, użyj flagi --images, -i:

toolbox list --images
 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

Należy pamiętać, że nazwy kontenerów i nazwy obrazów będą wyglądać prawie tak samo, z wyjątkiem ostatniej części ich nazwy.

Nazwa kontenera zwykle zawiera łącznik (-) przed ostatnią częścią nazwy (np. fedora-toolbox-33), a nazwa obrazu zawiera dwukropek (:) (np. fedora-toolbox:33).

5. Wejdź do pojemników

Stworzyliśmy już kontenery, ale jeszcze do nich nie weszliśmy. Wejdźmy więc do kontenera za pomocą polecenia:

toolbox enter

Po wejściu do kontenera monit powłoki jest poprzedzony symbolem rombu, jak pokazano na poniższym obrazie:

⬢[sk@toolbox ~]$ 

Czy zauważyłeś symbol rombu po lewej stronie monitu? Oznacza to, że jesteś w kontenerze.

Kontener przybornika działa w Fedorze Silverblue

Kontenery bezproblemowo integrują się z bieżącym systemem operacyjnym. Wewnątrz każdego kontenera znajdziesz swoją istniejącą nazwę użytkownika i uprawnienia.

Możesz uzyskać dostęp do swojego katalogu domowego i kilku innych lokalizacji w taki sam sposób, jak z systemu hosta. Możesz także uzyskać dostęp do systemowej i sesyjnej magistrali D-Bus, dziennika systemowego i protokołu Kerberos itp.

Każdy kontener zawiera typowe narzędzia wiersza poleceń, w tym menedżera pakietów (np. DNF w Fedorze). Możesz więc zainstalować i przetestować dowolne oprogramowanie wewnątrz kontenera.

Na przykład następujące polecenie instaluje wszystkie niezbędne narzędzia programistyczne:

sudo yum groupinstall "Development Tools"

5.1. Wejdź do konkretnego pojemnika

Uruchomienie polecenia toolbox enter bez żadnych opcji powoduje otwarcie domyślnego kontenera przybornika. Domyślny kontener to ten oparty na systemie operacyjnym hosta.

Jeśli chcesz otworzyć inny kontener, wyraźnie podaj jego nazwę, jak poniżej:

toolbox enter -c fedora-toolbox-32

Tutaj -c jest używane do określenia nazwy kontenera, a fedora-toolbox-32 jest nazwą kontenera.

6. Wyjdź z przybornika

Gdy skończysz z kontenerem, po prostu wpisz exit, aby wylogować się z kontenera.

exit

7. Uruchamiaj polecenia w kontenerach bez wchodzenia do nich

Godną uwagi funkcją Toolbox jest możliwość uruchamiania poleceń w kontenerze bez konieczności wchodzenia do niego. Poniższe polecenie wyświetla wydanie dystrybucyjne domyślnego kontenera z systemu hosta:

toolbox run cat /etc/redhat-release
Fedora release 33 (Thirty Three)

Jeśli uruchomisz polecenie toolbox run bez żadnych opcji, wykona ono polecenia w domyślnym kontenerze. Możesz także uruchamiać polecenia na innych kontenerach, podając jego nazwę za pomocą flagi --container, -c:

toolbox run -c fedora-toolbox-32 cat /etc/redhat-release
Fedora release 32 (Thirty Two)

Uruchamiaj polecenia w kontenerach przyborników bez wchodzenia do nich

8. Zatrzymaj uruchamianie kontenerów

Po wyjściu z kontenera będzie on działał, dopóki go nie zatrzymasz. Nie ma bezpośredniego polecenia przybornika umożliwiającego zatrzymanie działającego kontenera. Możemy jednak użyć polecenia podman, aby zatrzymać kontenery Toolbox:

podman container stop fedora-toolbox-33

Pamiętaj, że Toolbox wykorzystuje podmana pod maską.

9. Usuń kontenery i obrazy przybornika

Jeśli nie chcesz kontenera lub jego obrazu bazowego, możesz po prostu się ich pozbyć, jak poniżej.

Przed usunięciem kontenera upewnij się, że opuściłeś ten kontener.

Aby usunąć kontener, uruchom:

toolbox rm fedora-toolbox-32

Powyższe polecenie usuwa kontener o nazwie fedora-toolbox-32.

Aby wymusić usunięcie kontenera, nawet jeśli jest uruchomiony, użyj flagi --force, -f:

toolbox rm -f fedora-toolbox-32

Aby usunąć wszystkie kontenery, użyj flagi --all, -a:

toolbox rm --all

Sprawdź, czy kontener został usunięty, wyświetlając listę dostępnych kontenerów:

toolbox list

Podobnie możesz usunąć obrazy przybornika za pomocą polecenia toolbox rmi, jak poniżej:

toolbox rmi fedora-toolbox:32

Zwróć uwagę na i w powyższym poleceniu. Komenda rm usuwa kontenery, natomiast komenda rmi usuwa obrazy. Nie zapomnij także podać poprawnej nazwy obrazu, który chcesz usunąć.

Aby usunąć wszystkie obrazy, użyj flagi --all, -a:

toolbox rmi --all

Użyj podmana do zarządzania kontenerami i obrazami przybornika

Ponieważ Toolbox to tylko opakowanie Podmana, możesz bezpośrednio używać poleceń podman do zarządzania kontenerami.

Aby wyświetlić listę kontenerów Toolbox za pomocą polecenia podman, uruchom:

podman ps -a

Aby wyświetlić obrazy przybornika za pomocą podmana, uruchom:

podman images

Aby uruchomić kontener:

podman start fedora-toolbox-33

Aby wyświetlić statystyki wykorzystania zasobów na żywo wszystkich uruchomionych kontenerów:

podman stats

Aby zatrzymać kontener:

podman stop fedora-toolbox-33

Sprawdź pojemniki:

podman inspect fedora-toolbox-33

Usuń pojemnik:

podman rm <container-name>

Usuń obraz:

podman rmi <image-name>

Dostępnych jest wiele poleceń podmana. Możesz wyświetlić wszystkie dostępne ogólne polecenia i opcje w sekcji pomocy podmana:

podman --help

Wniosek

Kontenery służą nie tylko do celów eksperymentalnych i edukacyjnych, są również idealne do izolowanego środowiska programistycznego, w którym można pracować nad różnymi projektami w różnych wersjach systemu operacyjnego. Toolbox sprawia, że zarządzanie kontenerami jest o wiele łatwiejsze i lepsze!

Zasoby:

  • Dokumentacja Toolbox
  • Repozytorium Toolbox GitHub

Powiązane artykuły