Jak zarządzać kontenerami za pomocą Podmana i Skopeo w RHEL 8

Jak zarządzać kontenerami za pomocą Podmana i Skopeo w RHEL 8

Jednym z wyzwań, przed którymi stanęli programiści, jest niezawodne uruchamianie aplikacji w wielu środowiskach obliczeniowych. Często aplikacje nie działały zgodnie z oczekiwaniami ani nie napotkały błędów i całkowicie się nie udało. I tam właśnie koncepcja pojemniki urodził się.

Jakie są obrazy pojemnika?

Pojemnik Obrazy to pliki statyczne wysyłane z kodem wykonywalnym, który działa w odizolowanym środowisku. Obraz kontenera obejmuje biblioteki systemowe, zależności i inne ustawienia platformy potrzebne przez aplikację do działania w różnych środowiskach.

Red Hat Linux Zapewnia zestaw przydatnych narzędzi kontenerowych, które można wykorzystać do pracy bezpośrednio z kontenerami Linux za pomocą poleceń Docker. Obejmują one:

  • Podman - Jest to silnik z mniejszym kontenerem demona do prowadzenia i zarządzania OCI pojemniki w trybie korzeniowym lub bez korzeni. Podman jest podobne do Doker i ma te same opcje poleceń, z wyjątkiem tego Doker jest demem. Możesz ciągnąć, uruchamiać i zarządzać obrazami kontenerowymi za pomocą Podman w taki sam sposób, jak ty Doker. Podman jest wyposażony w wiele zaawansowanych funkcji, w pełni integruje się z systemy, i oferuje obsługę przestrzeni nazw użytkowników, która obejmuje uruchamianie kontenerów bez potrzeby użytkownika rootowego.
  • Skopeo: Jest to narzędzie wiersza poleceń używane do kopiowania obrazów kontenera z jednego rejestru do drugiego. Możesz użyć Skopeo skopiować obrazy do i z konkretnego hosta, a także kopiować obrazy do innego rejestru lub środowiska kontenera. Oprócz kopiowania obrazów możesz użyć go do kontroli obrazów z różnych rejestrów i użycia podpisów do tworzenia i weryfikacji obrazów.
  • Buildah: Jest to zestaw narzędzi wiersza poleceń używanych do tworzenia i zarządzania kontenerem OCI obrazy za pomocą Doker akta.

W tym artykule skupimy się na zarządzaniu kontenerami za pomocą Podman I Skopeo.

Wyszukiwanie obrazów kontenerowych z zdalnego rejestru

Podman Search Polecenie pozwala wyszukiwać wybrane zdalne rejestry dla obrazów kontenerowych. Domyślna lista rejestrów jest zdefiniowana w rejestry.conf plik znajdujący się w /etc/pojemniki/ informator.

Rejestry są zdefiniowane przez 3 sekcje.

  • [Rejestr.szukaj] - Niniejsza sekcja określa domyślne rejestry Podman może wyszukiwać obrazy kontenera. Szuka żądanego obrazu w rejestr.dostęp.czerwony kapelusz.com, rejestr.czerwony kapelusz.io, I doker.io rejestry.
Domyślne rejestry
  • [Rejestr.niepewny]- W tej sekcji określa rejestry, które nie wdrażają szyfrowania TLS i.E niepewne rejestry. Domyślnie nie określono żadnych wpisów.
Niepewne rejestry
  • [Rejestr.blok] - Blokuje lub odmawia dostępu do określonych rejestrów z systemu lokalnego. Domyślnie nie określono żadnych wpisów.
Blokuje rejestry

Jako regularne (Non-Root) Użytkownik uruchamiający polecenie Podman, możesz zdefiniować swój własny rejestry.conf Plik w katalogu domowym ($ Home/.konfigurowanie/kontenery/rejestry.conf) w celu zastąpienia ustawień całego systemu.

Reguły pod warunkiem rejestrów

Jak określasz rejestry, pamiętaj o:

  • Każdy rejestr powinien być zamknięty przez pojedyncze cytaty.
  • Rejestry można określić za pomocą nazwy hosta lub adresu IP.
  • Jeśli określono wiele rejestrów, należy je oddzielić przecinkami.
  • Jeśli rejestr korzysta z portu niestandardowego - albo porty portu TCP 443 dla bezpiecznego i 80 dla niepewnych, - numer portu powinien być określony wraz z nazwą rejestru E.G. rejestr.przykład.com: 5566.

Aby przeszukać rejestr obrazu kontenera za pomocą składni:

# Podman Search Registry/Container_image 

Na przykład, aby wyszukać Redis obraz w rejestr.czerwony kapelusz.io Rejestr, wywołuj polecenie:

# rejestru wyszukiwania podmana.czerwony kapelusz.IO/REDIS 
Wyszukaj rejestr po kontenera

Aby wyszukać Mariadb Uruchomienie obrazu kontenera.

# rejestru wyszukiwania podmana.czerwony kapelusz.IO/Mariadb 
Wyszukaj obraz kontenera Mariadb

Aby uzyskać skomplikowany opis obrazu pojemnika, użyj --bez trunc opcja przed nazwą obrazu kontenera z uzyskanych wyników. Na przykład postaramy się uzyskać szczegółowy opis obrazu kontenera MarIADB, jak pokazano:

# Podman Search-No-Trunc Registry.czerwony kapelusz.IO/RHEL8/MARIADB-103 
Lista Opis obrazu kontenera Mariadb

Ciągnięcie obrazów pojemnika

Wyciąganie lub pobieranie obrazów kontenerowych ze zdalnego rejestru wymaga pierwszego uwierzytelnienia przed cokolwiek innego. Na przykład, aby odzyskać obraz kontenera MarIADB, najpierw zaloguj się do rejestru Redhat:

# login Podman 

Podaj swoją nazwę użytkownika i hasło i naciśnijWCHODZIĆ„Na klawiaturze. Jeśli wszystko pójdzie dobrze, powinieneś otrzymać wiadomość potwierdzającą, że logowanie do rejestru zakończyło się powodzeniem.

Loginowi się powiodło! 

Teraz możesz wyciągnąć obraz za pomocą pokazanej składni:

# Podman Pull [:]/[/]: 

odnosi się do zdalnego hosta lub rejestru, który zapewnia repozytorium obrazów kontenerowych na TCP . i łącznie określić obraz kontenera na podstawie w rejestrze. Wreszcie Opcja określa wersję obrazu kontenera. Jeśli nie zostanie określony, używany jest domyślny znacznik - najnowszy -.

Zawsze zaleca się dodawanie zaufanych rejestrów, czyli te, które zapewniają szyfrowanie i nie pozwalają anonimowym użytkownikom spawnować konta z losowymi nazwami.

Aby wyciągnąć obraz Mariadb, uruchom polecenie:

# Podman Pull Registry.czerwony kapelusz.IO/RHEL8/MARIADB-103 
  • - rejestr.czerwony kapelusz.io
  • - Rhel8
  • - Mariadb
  • - 103
Pociągnij obraz Mariadb

W przypadku kolejnych obrazów pojemników nie wymaga dalszego logowania, ponieważ jesteś już uwierzytelniony. Wyciągnąć Redis Obraz kontenera, po prostu uruchom:

# Podman Pull Registry.czerwony kapelusz.IO/RHSCL/REDIS-5-RHEL7 
Pull Redis Container obraz

Lista obrazów kontenerów

Po zakończeniu pobierania obrazów możesz wyświetlić obrazy istniejące obecnie na hoście, uruchamiając polecenie Podman Images.

# Obrazy Podman 
Lista obrazów kontenerów

Sprawdzanie obrazów pojemnika

Przed uruchomieniem pojemnika zawsze dobrym pomysłem jest zbadanie obrazu i zrozumienie, co robi. Podman Inspect Dowódca drukuje morze metadanych o pojemniku, takim jak system operacyjny i architektura.

Aby sprawdzić obraz, uruchom Podman Inspect polecenie, a następnie identyfikator obrazu lub repozytorium.

# Podman Sprawdź identyfikator obrazu lub # Podman Inspectorypozytorium 

W poniższym przykładzie sprawdzamy Mariadb pojemnik.

# Podman Inspect Registry.czerwony kapelusz.IO/RHEL8/MARIADB-103 
Sprawdzanie obrazów kontenera MariaDB

Aby wyciągnąć określone metadane do przejścia pojemnika --format Opcja, a następnie metadane i tożsamość kontenera (identyfikator obrazu lub nazwa).

W poniższym przykładzie pobieramy informacje o architekturze i opisie kontenera bazowego RHEL 8, który podlega ''Etykiety' Sekcja.

# Podman Inspect - -FORMAT = '.Etykiety.architektura 'Image Id # podman inspekcja - -format =' .Etykiety.Opis 'ID obrazu 
Uzyskaj informacje o architekturze kontenerów

Aby sprawdzić zdalny obraz z innego rejestru, użyj Skopeo sprawdź Komenda. W poniższym przykładzie sprawdzamy obraz RHEL 8 INIT hostowany Doker.

# Skopeo Sprawdź dokera: // rejestr.czerwony kapelusz.IO/RHEL8-beta/rhel-init 
Sprawdź zdalny obraz z rejestru Docker

Tagowanie obrazów kontenerów

Jak można zauważyć, nazwy obrazów mają zwykle charakter ogólny. Na przykład obraz Redis jest oznaczony:

rejestr.czerwony kapelusz.IO/RHSCL/REDIS-5-RHEL7 

Tagowanie obrazów nadaje im bardziej intuicyjną nazwę, aby lepiej zrozumieć, co zawierają. Używając Tag Podman polecenie, możesz utworzyć znacznik obrazu, który jest zasadniczo aliasem do nazwy obrazu, który zawiera różne części.

To są:

Rejestr/nazwa użytkownika/nazwa: Tag 

Na przykład, aby zmienić ogólną nazwę obrazu Redis, który ma identyfikator 646F2730318C , Wykonamy polecenie:

# tag podman 646f2730318c myredis 

Aby dodać tag na końcu, dołącz pełną dwukropek, a następnie numer znacznika:

# Tag podman 646F2730318C Myredis: 5.0 

Bez dodawania numeru znacznika zostanie po prostu przypisany najnowszy atrybut.

Ustaw nazwę obrazu kontenera Redis

Uruchamianie obrazów kontenera

Aby uruchomić pojemnik, użyj Podman Run Komenda. Na przykład:

# Podman Run Image_ID 

Aby uruchomić pojemnik w milczeniu w tle jako usługa demona, użyj -D opcja jak pokazano.

# Podman Run -d Image_id 

Na przykład, aby uruchomić Redis obraz z id 646F2730318C, Wzywamy polecenie:

# Podman Run -d 646f2730318c 
Uruchom obrazy kontenera Redis

Jeśli uruchamiasz kontener na podstawie systemu operacyjnego, takiego jak RHEL 8 obraz podstawowy, możesz uzyskać dostęp do powłoki za pomocą -To dyrektywa. -I opcja tworzy sesję interaktywną, podczas gdy -T spawnuje sesję terminalową. --nazwa Opcja ustawia nazwę kontenera na mybash When jest ECBC6F53BBA0 Identyfikator obrazu obrazu podstawowego.

# podman run -it --name = mybash ecbc6f53bba0 

Następnie możesz uruchomić dowolne polecenia powłoki. W poniższym przykładzie weryfikujemy wersję systemu operacyjnego obrazu kontenera.

# Cat /etc /OS-Rulease 
Sprawdź wersję systemu operacyjnego kontenera obrazu

Aby wyjść z kontenera, po prostu wywołaj polecenie wyjścia.

# Wyjście 

Po opuszczeniu kontenera automatycznie zatrzymuje się. Aby ponownie rozpocząć kontener, użyj Podman Start polecenie z -ai flaga jak pokazano.

# podman start -a mybash 

Jeszcze raz daje to dostęp do skorupy.

Rozpocznij obrazy pojemnika

Lista uruchamiająca obrazy kontenera

Aby wymienić obecnie działające kontenery, użyj Podman Ps polecenie jak pokazano.

# Podman Ps 
Lista uruchamiająca obrazy kontenera

Aby wyświetlić wszystkie kontenery, w tym te, które wyszły po uruchomieniu, użyj polecenia:

# podman ps -a 
Zobacz wszystkie obrazy kontenera

Skonfiguruj obrazy kontenerów, aby automatycznie startować w serwisie SystemD

W tej sekcji koncentrujemy się na tym, jak kontener może być skonfigurowany do działania bezpośrednio na systemie RHEL jako usługa SystemD.

Najpierw uzyskaj swój preferowany obraz. W tym przypadku wyciągnęliśmy Redis Zdjęcie z Docker Hub:

# Podman Pull Docker.IO/REDIS 

Jeśli masz Selinux działający w swoim systemie, musisz aktywować Container_Manage_cgroup boolean do prowadzenia pojemników z Systemd.

# setsebool -p Container_Manage_cgroup on 

Następnie uruchom obraz kontenera w tle i przypisz go do preferowanej nazwy obrazu. W tym przykładzie wymieniliśmy nasz obraz redis_server i zmapował port 6379 od pojemnika do naszego RHEL 8 gospodarz

# Podman Run -d --Name Redis_Server -p 6379: 6379 Redis 
Uruchom obraz kontenera na tle

Następnie stworzymy Systemd plik konfiguracyjny jednostki dla redis w /etc/systemd/system/ informator.

# vim/etc/systemd/system/redis-container.praca 

Wklej poniższą zawartość do pliku.

[Jednostka] Opis = Container Redis [Service] Restart = zawsze execStart =/usr/bin/podman start -a redis_server execstop =/usr/bin/podman stop -t 2 redis_server [instaluj] Wantby = lokalny.cel 

Zapisz i wyjdź z pliku.

Następnie skonfiguruj kontener, aby automatycznie uruchamia się podczas uruchamiania.

# Systemctl Włącz Redis-Container.praca 

Następnie uruchom kontener i zweryfikuj jego status działający.

# Systemctl Start Redis-Container.Service # Systemctl Status Redis-Container.praca 
Sprawdź status obrazu kontenera

Skonfiguruj trwałe przechowywanie obrazów kontenerowych

Podczas uruchamiania kontenerów ostrożnie konfigurowanie trwałej pamięci zewnętrznej na hoście. Zapewnia to kopię zapasową na wypadek awarii kontenera lub przypadkowo usunięcia.

Aby przetrwać dane, zamierzamy zmapować katalog znajdujący się w hoście do katalogu wewnątrz kontenera.

$ Podman Run --privileged -it -v/var/lib/Conteners/Backup_storage:/MNT Registry.czerwony kapelusz.io/ubi8/ubi/bin/bash 

--uprzywilejowany Opcja jest przekazywana, gdy Selinux ma na celu egzekwowanie. -v Opcja określa objętość zewnętrzną znajdującą się na hoście. Tom kontenera jest tutaj /MNT informator.

Po uzyskaniu dostępu do powłoki zamierzamy utworzyć przykładowy plik Testowanie.tekst w /MNT katalog, jak pokazano.

$ echo „To testuje trwałe przechowywanie zewnętrzne”> /mnt /testowanie.tekst 

Będziemy wtedy Wyjście kontener i sprawdź, czy plik istnieje w zewnętrznej pamięci przebywającej na hoście

# Exit # cat/var/lib/Conteners/Backup_storage/Testing.tekst 

WyjścieTo testuje trwałe przechowywanie zewnętrzne.

Skonfiguruj trwałe przechowywanie kontenerów

Zatrzymanie i usuwanie pojemników

Po zakończeniu uruchamiania pojemnika możesz go zatrzymać za pomocą Podman Stop polecenie, a następnie kontener-id które można uzyskać od Podman Ps Komenda.

# Podman Stop Container-ID 
Zatrzymaj obraz kontenera

Aby usunąć pojemniki, których już nie potrzebujesz, najpierw upewnij się, że go zatrzymasz, a następnie wywołać Podman Rm polecenie, a następnie identyfikator lub nazwa kontenera jako opcja.

# Podman RM-Container-ID 

Aby usunąć wiele kontenerów za polecenie, podaj kontener IDS oddzielone przestrzenią.

um 
Usuń obraz pojemnika

Aby wyczyścić wszystkie kontenery, uruchom polecenie:

# podman rm -a 
Wyczyść wszystkie pojemniki

Usuwanie obrazu

Aby usunąć obraz, najpierw upewnij się, że wszystkie pojemniki odrodzone z obrazów są zatrzymane i usuwane, jak omówiono w poprzednim podataku.

Następnie kontynuuj i uruchom PODMAN -RMI Polecenie, a następnie identyfikator obrazu, jak pokazano:

# Podman -rmi Image -id 
Usuń obraz

Wniosek

To kończy ten rozdział na temat zarządzania i pracy z kontenerami RHEL 8. Mamy nadzieję, że ten przewodnik zapewnił porządne zrozumienie kontenerów i w jaki sposób możesz wchodzić w interakcje i zarządzać nimi na swoim Rhel Używanie systemu Podman I Skopeo.