Kompletny samouczek LXD

Kompletny samouczek LXD
Linux obsługuje tworzenie kontenerów, które działają jako maszyny wirtualne, ale są oddzielone od procesu systemowego. Kontenery są lekkie i w przeciwieństwie do maszyn wirtualnych, nie potrzebują obsługi wirtualizacji sprzętu procesowego. Dlatego możesz szybko utworzyć wiele kontenerów na jednym serwerze. Kontenery mogą być tworzone i zarządzane za pomocą LXD.

Ten przewodnik omawia wszystko o LXD. Zobaczymy, jak zainstalować LXD oraz tworzyć i zarządzać kontenerami.

Co to jest lxd?

Mówiąc o pojemnikach, większość uwagi była na Docker i Kubernetes. Jednak starszy model kontenera, projekt kontenera Linux (LXC), jest nadal pomocny, zwłaszcza jego zestaw narzędzi LXD.

Wirtualizację można osiągnąć za pomocą hiperwizora lub pojemnika.

Hiperwizory, takie jak Oracle VM oferują warstwę abstrakcji, umożliwiając gościowi wirtualną maszynę do izolowania dostępu do sprzętu i zasobów systemu hosta. Dlatego hiperwizory wymagają większej przestrzeni i spuścić zasoby systemu hosta, aby uruchomić maszynę wirtualną.

Natomiast kontenery Linux udostępniają jądro OS Host, co oznacza, że ​​pojemniki nie marnują zasobów i pamięci gospodarza. Dlatego możesz mieć wiele kontenerów działających na jednym serwerze, a szybkość i wydajność dla zawierających są niezrównane. Aby tworzyć i zarządzać tymi kontenerami, potrzebujesz modelu kontenera, takiego jak LXD.

LXD oferuje obsługę kontenerów poprzez symulację wirtualnej wersji systemu operacyjnego hosta. W ten sposób kontener może działać bez wpływu na zasoby hosta.

Praca z kontenerami LXD

Ten przewodnik opracuje się do tworzenia kontenera Linux na Ubuntu za pomocą LXD. Będziemy mieć dwie sekcje, instalację i tworzenie kontenera.

1. Instalowanie LXD

Aby zainstalować LXD, musimy najpierw zaktualizować repozytorium Apt.

$ sudo apt aktualizacja && sudo apt aktualizację

Po zaktualizowaniu repozytorium APT możemy zainstalować LXD jako pakiet snap. Możesz zainstalować najnowszą stabilną wersję lub określić wersję LXD, którą chcesz zainstalować

$ sudo snap instaluj lxd -Channel = 4.0/stabilny
Lub
$ snap instaluj lxd -channel = najnowszy/stabilny

Ten przykład instaluje najnowszą stabilną wersję. Pakiet Snap pobiera pakiet.

Po zakończeniu pobierania LXD zostanie zainstalowana i wyświetli komunikat potwierdzający, że instalacja się powiodła.

Po zainstalowaniu LXD możesz zarządzać serwerem LXD, dodając użytkownika do grupy LXD. W ten sposób nie będziesz musiał być korzeniem, aby zarządzać kontenerami LXD. Poniższe polecenie dodaje bieżącego użytkownika do grupy LXD.

$ sudo adduser $ użytkownik lxd

Załóżmy, że użytkownik jest już dodany, otrzymasz wiadomość potwierdzającą, że użytkownik jest już członkiem grupy LXD.

Jeśli chcesz dodać innego użytkownika do tej grupy, użyj składni poniżej.

$ sudo adduser nazwa użytkownika lxd

Zauważ, że członkostwo w grupie LXD będzie miało zastosowanie do następnego logowania. Możesz rozpocząć nową sesję SH, aby go zastosować. Alternatywnie możesz uruchomić NEWGRP polecenie, które osiąga to samo, co utworzenie nowej sesji SSH.

Następnie musimy potwierdzić członkostwo w grupie LXD za pomocą ID polecenie ustalenia dodanego członka odzwierciedla w grupie. Poniższy przykład potwierdza, że ​​bieżący użytkownik naszego przykładu został pomyślnie dodany do grupy LXD.

Dzięki temu możemy tworzyć i zarządzać naszymi kontenerami LXD.

2. Tworzenie i zarządzanie kontenerami

Pierwszą rzeczą jest sprawdzenie, czy na serwerze istnieją kontenery LXD. W tym celu użyj opcji listy. Chociaż zapytamy o pojemniki LXD, zauważysz, że używamy LXC Ponieważ LXD jest zestawem narzędzi dla projektu LXC zaprojektowanego do obsługi API LXC.

Lista $ LXC

W takim przypadku mamy świeżą instalację LXD i zauważysz na wyjściu, którego nie ma żadnych kontenerów. Załóżmy, że mieliśmy pojemnik, zostanie on wymieniony w poniższej tabeli obok jego szczegółów.

Pierwszym krokiem jest zainicjowanie środowiska LXC za pomocą w tym opcja.

$ sudo lxd init

W ten sposób LXC automatycznie skonfiguruje środowisko, monitując o różne pytania, aby pomóc w procesie konfiguracji. Jeśli nie masz pewności, jak odpowiedzieć, polecam naciśnięcie klawisza Enter, aby użyć opcji domyślnych. Będą działać dobrze. Alternatywnie możesz skonfigurować konfigurację i wybrać opcje tego samouczka, jak na poniższym obrazku.

Po skonfigurowaniu środowiska LXC możesz utworzyć pierwszy kontener.

Poza tym możesz zweryfikować różne informacje o pojemnikach LXD. Na przykład możesz sprawdzić dostępne profile, wymieniając je.

Lista profilu $ LXC

Nazwa profilu to ta określona podczas inicjowania środowiska LXC. Jeśli pójdziesz z domyślnym nazewem, Twoja lista profili pojawi się jak ta poniżej.

Aby sprawdzić informacje o pamięci, użyj poniższego polecenia.

Lista pamięci $ LXC

Gdy masz wiele profili, możesz określić nazwę profilu, który chcesz pobrać informacje o przechowywaniu za pomocą pokazywać Opcja, a następnie nazwisko profilu. W naszym przypadku nasz profil jest nazwany domyślny i możemy wyodrębnić jego szczegóły z poniższym polecenie.

$ lxc pamięć Pokaż domyślnie

Otrzymasz informacje o pamięci, takie jak rozmiar, nazwa utworzonej puli itp.

Dobra wiadomość jest taka, że ​​LXD obsługuje tworzenie kontenerów dla różnych dystrybucji Linux. Wszystko, co jest potrzebne, to pobierać obraz dla żądanego dystrybucji, a następnie zainstalowanie go. Dostępne obrazy, które możesz pobrać, znajdują się w repozytorium LXC.

Repozytorium zawiera różne wersje każdej dystrybucji, dzięki. Użyj poniższego polecenia, aby wymienić wszystkie dostępne obrazy dla wszystkich dystrybucji.

$ LXC List obrazów: Obrazy:

Załóżmy, że chcesz wymienić obrazy dla określonej dystrybucji, użyj Grep polecenie filtrowania nazwy i wersji dystrybucji, jeśli to konieczne. Tutaj filtrujemy obrazy dla Ubuntu.

$ LXC List obrazów Obrazy: | Grep -i Ubuntu

Na poniższym wyjściu zauważysz, że otrzymujemy różne wersje i architektury dla obrazów Ubuntu. Możesz utworzyć kontener dla dowolnego z wymienionych obrazów.

W tym samouczku szybko utwórzmy pojemnik dla Alpine/3.14. Alpine jest mały i możesz uruchomić poniższe polecenie, aby utworzyć dla niego kontener. W zależności od celu, możesz swobodnie używać dowolnego dystrybucji w sprawie.

$ LXC Launch Images: Alpine/3.14/AMD64 Linuxhint1

Podczas tworzenia kontenera musisz określić nazwę kontenera. Zamień Linuxhint1 na nazwę do użytku dla kontenera. Otrzymasz wiadomość potwierdzającą, że kontener został utworzony i uruchomiony.

Sprawdźmy, czy nasz kontener alpejski jest tworzony poprzez listę dostępnych kontenerów za pomocą polecenia listy.

W tym wyjściu widzimy utworzony kontener i jego stan jest obecnie uruchomiony, co oznacza, że ​​kontener jest aktywny i możemy go użyć. Utworzony kontener ma również przypisany IPv4 i IPv6. Tworzenie pojemnika zależy od prędkości Internetu i rozmiaru dystrybucji, dla którego tworzysz kontener.

Aby korzystać z utworzonego kontenera, możemy uzyskać do niego dostęp w sesji korzeniowej innej niż login, wykorzystując Exec Komenda. W przypadku alpejskiego użyjemy cii interpretator. Dla centu lub ubuntu /bin /bash działałby lepiej.

Uzyskaj więc dostęp do utworzonego kontenera, określając jego nazwę, jak pokazano.

$ sudo lxc exec Linuxhint1 sh

Wprowadź hasło do systemu hosta, aby autoryzować dostęp do kontenera. Zauważ, że jesteśmy teraz w kontenerze jako użytkownik root i możemy wykonać dowolne polecenie jako root.

Kiedy chcesz zamknąć sesję, wpisz Wyjście i naciśnij Enter. Zauważ, że wyjście z sesji kontenerowej nie powstrzymuje sesji. Nadal działa w tle.

Możesz dodać wirtualny interfejs sieciowy do kontenerów, określając ich nazwę. Najpierw wymień nam dostępny interfejs sieciowy dla naszego systemu z poniższym poleceniem.

$ LXC Network LS

Załóżmy, że chcieliśmy dodać nowy wirtualny interfejs dla ENP0S3 dla naszego kontenera, możemy to osiągnąć, dołączając interfejs w następujący sposób.

Sieć $ LXC dołącz ENP0S3 Linuxhint1

Po dodaniu interfejsu sieciowego otwórz nową sesję SH i sprawdź, czy Twój nowy wirtualny interfejs.

Dzięki LXD możesz również sprawdzić status i instancje kontenera, aby sprawdzić, czy jest on uruchomiony, czy zatrzymany. W tym celu użyj Lista -Fast Komenda.

Lista $ LXC -FAST

W poniższym wyjściu możemy zobaczyć, że nasz kontener Linuxhint1 działa w kolumnie stanu. Załóżmy, że mieliśmy wiele pojemników. Wszystkie instancje miałyby swoje stany i inne szczegóły w poniższej tabeli.

Możesz uruchomić, zatrzymać lub ponownie uruchomić pojemnik w dowolnym momencie. Aby zatrzymać pojemnik, użyj zatrzymywać się Słowo kluczowe, a następnie pojemnik, który chcesz zatrzymać.

$ lxc stop Linuxhint1

Załóżmy, że sprawdzamy obecny stan naszego pojemnika. Zwrócimy uwagę, że jest zatrzymany. W takim przypadku możemy zacząć od poniższego polecenia.

$ lxc start linuxhint1

Jeśli mamy problemy z kontenerem, możemy szybko uruchomić go za pomocą polecenia restartu.

$ lxc restart linuxhint1

Podczas pracy z kontenerami możesz wyświetlać informacje serwerów LXD za pomocą informacje Komenda. Jeśli nie określisz nazwy kontenera, wyjście wyświetli informacje dla wszystkich dostępnych kontenerów. Możemy jednak określić kontener, który chcemy wyodrębnić jego informacje.

INFO $ LXC LINUXHINT1

Pobrane informacje zawierają wszystkie szczegóły kontenera, takie jak nazwa kontenera, jego status, typ, PID i zasoby, których kontener używa. Informacje te są kluczowe w zarządzaniu kontenerem.

Mimo to LXD obsługuje udostępnianie plików do iz kontenera. Może to być pchnięcie danego pliku, który utworzyłeś, aby był dostępny z kontenera lub wyciągnąć plik z kontenera do systemu hosta. W takim przypadku użyj naciskać Lub ciągnąć Słowa kluczowe, a następnie ścieżka do pliku.

W pierwszym przykładzie opuszczamy kontener i tworzymy plik o nazwie nazwy.tekst w systemie hosta. Następnie popychamy utworzony plik do kontenera. Mimo to logujemy się do kontenera i potwierdzamy, że nasz plik został pomyślnie zepchnięty.

Oto składnia, aby wypchnąć plik z hosta do kontenera.

$ LXC PLIK PUH /PATH/ Contener/DestinationPath/on-Container

Podobnie poniższy przykład tworzy skrypt na kontenerze. Następnie wyciągamy utworzony skrypt z kontenera do systemu hosta w bieżącym katalogu. Ostatnie polecenie zawiera zawartość bieżącego katalogu na hosta, aby potwierdzić, że pomyślnie wyciągnęliśmy plik.

$ lxc Plik Pull Container/ścieżka/to-file ścieżka/to-destination-on-host

Ostatnią rzeczą jest wiedzieć, jak usunąć utworzony pojemnik, gdy nie jest to już konieczne. Najpierw musisz zatrzymać działający pojemnik.

Po zatrzymaniu usuń go za pomocą poniższego polecenia.

$ lxc usuń nazwę pojemnika

Chodzi o tworzenie i zarządzanie kontenerami za pomocą LXD. Jeśli utkniesz w pracy z LXD, otwórz stronę Pomoc, aby zobaczyć, które polecenie możesz użyć w danym celu. Poza tym możesz wyświetlić stronę pomocy dla określonego polecenia.

Wniosek

LXD to model kontenera, który oferuje interfejs API REST w celu obsługi zarządzania pojemnikami LXC. Możesz zainstalować LXD jako pakiet snap i zainicjować środowisko LXC idealne do tworzenia kontenerów LXD. Ten post oferował praktyczny samouczek na temat wszystkiego o LXD. Omówiliśmy, co oznacza LXD, jego instalacja, tworzenie i zarządzanie kontenerami oraz jak usunąć utworzony kontener.