Den komplette LXD -opplæringen

Den komplette LXD -opplæringen
Linux støtter opprettelsen av containere, som fungerer som virtuelle maskiner, men er atskilt fra systemprosessen. Containere er lette, og i motsetning til virtuelle maskiner, trenger de ikke CPU -maskinvare -virtualiseringsstøtte. Derfor kan du raskt opprette flere containere på en server. Beholderne kan opprettes og administreres ved hjelp av LXD.

Denne guiden diskuterer alt om LXD. Vi får se hvordan du installerer LXD og oppretter og administrerer containere.

Hva er LXD?

Når du snakker om containere, har mesteparten av oppmerksomheten vært på Docker og Kubernetes. Imidlertid er en eldre containermodell, Linux Container Project (LXC), fremdeles nyttig, spesielt LXD -verktøyet.

Virtualisering kan oppnås ved hjelp av en hypervisor eller en beholder.

Hypervisorer som Oracle VM tilbyr et lag med abstraksjon, slik at gjestenes virtuelle maskin har isolert tilgang til vertssystemets maskinvare og ressurser. Derfor krever hypervisorer mer plass og tapper vertssystemets ressurser for å kjøre en virtuell maskin.

I kontrast deler Linux -containere verten OS -kjernen, noe som betyr at containere ikke kaster bort vertens ressurser og minne. Derfor kan du ha mange containere som kjører på en server, og hastigheten og ytelsen for inneholder uovertruffen. For å opprette og administrere disse containerne, trenger du en containermodell, for eksempel LXD.

LXD tilbyr containerstøtte ved å simulere en virtuell versjon av verten OS. På den måten kan beholderen løpe uten å påvirke vertens ressurser.

Arbeider med LXD -containere

Denne guiden vil utdype å lage en Linux -beholder på Ubuntu ved hjelp av LXD. Vi vil ha to seksjoner, installasjon og lage beholderen.

1. Installere LXD

For å installere LXD, må vi først oppdatere APT -depotet.

$ sudo apt oppdatering && sudo apt oppgradering

Når APT -depotet er oppdatert, kan vi installere LXD som en SNAP -pakke. Du kan installere den nyeste stabile utgivelsen eller spesifisere LXD -versjonen du vil installere

$ sudo snap install lxd -kanal = 4.0/stabil
eller
$ snap install lxd -channel = siste/stabil

Dette eksemplet installerer den siste stabile utgivelsen. Snap -pakken vil laste ned pakken.

Når nedlastingen er fullført, vil LXD bli installert og vise en melding som bekrefter at installasjonen var vellykket.

Med LXD installert, kan du administrere LXD -serveren ved å legge brukeren til LXD -gruppen. På den måten trenger du ikke være rot for å administrere LXD -containere. Kommandoen nedenfor legger den nåværende brukeren til LXD -gruppen.

$ sudo adduser $ bruker lxd

Anta at brukeren allerede er lagt til, vil du få en melding som bekrefter at brukeren allerede er medlem av LXD -gruppen.

Hvis du vil legge til en annen bruker i denne gruppen, bruk syntaksen nedenfor.

$ sudo addUser brukernavn lxd

Merk at medlemskapet i LXD -gruppen vil gjelde ved neste pålogging. Du kan starte en ny SH -økt for at den blir brukt. Alternativt kan du kjøre NewGrp Kommando, som oppnår det samme som å lage en ny SSH -økt.

Deretter må vi bekrefte LXD -gruppemedlemskapet ved å bruke id Kommando for å konstatere medlemmet vi la til reflekterer i gruppen. Eksemplet nedenfor bekrefter at den nåværende brukeren for vårt eksempel ble lagt til LXD -gruppen.

Med det kan vi opprette og administrere våre LXD -containere.

2. Opprette og administrere containere

Det første er å sjekke om det er eksisterende LXD -containere på serveren din. For det, bruk listealternativet. Selv om vi spør om LXD -containerne, vil du merke at vi bruker LXC Fordi LXD er et verktøysett for LXC -prosjektet designet for å håndtere LXC API.

$ LXC -liste

I dette tilfellet har vi en fersk LXD -installasjon, og du vil merke deg i utgangen at vi ikke har noen containere som er opprettet. Anta at vi hadde en beholder, den ville være oppført i tabellen nedenfor ved siden av detaljene.

Det første trinnet er å initialisere LXC -miljøet ved hjelp av i det alternativ.

$ sudo lxd init

På denne måten vil LXC automatisk sette opp miljøet ved å få deg til å få forskjellige spørsmål for å hjelpe deg med oppsettingsprosessen. Hvis du er usikker på hvordan du svarer, anbefaler jeg å trykke på Enter -tasten for å bruke standardalternativene. De vil fungere bra. Alternativt kan du konfigurere oppsettet og velge alternativene for denne opplæringen, som på bildet nedenfor.

Når LXC -miljøet er satt opp, er du klar til å lage din første beholder.

Dessuten kan du bekrefte ulike informasjon om LXD -containerne. For eksempel kan du sjekke de tilgjengelige profilene ved å liste dem.

$ lxc profilliste

Navnet for profilen er det som er spesifisert når du initialiserer LXC -miljøet. Hvis du går med standardnavnet, vil profillisten din vises som den nedenfor.

For å sjekke lagringsinformasjonen, bruk kommandoen nedenfor.

$ LXC lagringsliste

Når du har flere profiler, kan du spesifisere navnet på profilen du vil hente lagringsinformasjonen ved hjelp av forestilling Alternativ etterfulgt av profilens navn. For vår sak heter profilen vår misligholde og vi kan hente ut detaljene med kommandoen nedenfor.

$ lxc lagring viser standard

Du får lagringsinformasjon, for eksempel størrelsen, navnet på det opprettede bassenget osv.

Den gode nyheten er at LXD støtter å lage containere for forskjellige Linux -distribusjoner. Alt som trengs er å laste ned bildet for distroen du vil ha, for så å installere det. De tilgjengelige bildene du kan laste ned er i LXCs depot.

Repotet inneholder forskjellige versjoner av hver distro, slik at du kan velge hvilken versjon og arkitektur som fungerer best for saken din. Bruk kommandoen nedenfor til å liste opp alle tilgjengelige bilder for alle distros.

$ LXC Image List Images:

Anta at du vil liste opp bildene for en bestemt distro, bruk grep kommando for å filtrere distroens navn og versjon, om nødvendig. Her filtrerer vi bildene for Ubuntu.

$ LXC Image List Images: | grep -i ubuntu

Du vil merke i utdataene nedenfor at vi får forskjellige versjoner og arkitekturer for Ubuntu -bildene. Du kan opprette en beholder for noen av de listede bildene.

For denne opplæringen, la oss raskt lage en beholder for Alpine/3.14. Alpine er liten, og du kan kjøre kommandoen nedenfor for å lage en beholder for den. Avhengig av målet ditt, står du fritt til å bruke enhver distro for saken din.

$ lxc lanseringsbilder: alpine/3.14/AMD64 Linuxhint1

Når du oppretter beholderen, må du spesifisere beholderens navn. Så erstatt Linuxhint1 med navnet du vil bruke for beholderen din. Du vil få en melding som bekrefter at beholderen er opprettet og startet.

La oss bekrefte at vår alpine beholder er opprettet ved å liste opp tilgjengelige containere ved hjelp av listekommandoen.

I denne utgangen kan vi se containeren som er opprettet og tilstanden er for tiden i gang, noe som betyr at beholderen er aktiv, og vi kan bruke den. Den opprettede beholderen tildeles også en IPv4 og IPv6. Opprette beholderen avhenger av internetthastigheten din og størrelsen på distroen du lager en beholder for.

For å bruke den opprettede beholderen, kan vi få tilgang til den i en ikke-loginrotøkt ved å bruke Exec kommando. For alpine vil vi bruke sh tolk. For Centos eller Ubuntu ville /bin /bash fungere bedre.

Så tilgang til den opprettede beholderen ved å spesifisere navnet som vist.

$ sudo lxc exec linuxhint1 sh

Skriv inn passordet for vertssystemet for å autorisere tilgang til beholderen. Merk at vi nå er i beholderen som rotbruker og kan utføre enhver kommando som root.

Når du vil lukke økten, skriv inn exit og trykk Enter. Merk at å forlate en containerøkt ikke stopper økten. Det kjører fortsatt i bakgrunnen.

Du kan legge til et virtuelt nettverksgrensesnitt til containere ved å spesifisere navnet deres. La oss først liste opp det tilgjengelige nettverksgrensesnittet for systemet vårt med kommandoen nedenfor.

$ lxc nettverk ls

Anta at vi ønsket å legge til et nytt virtuelt grensesnitt for ENP0S3 for containeren vår, vi kunne oppnå det ved å feste grensesnittet som følger.

$ lxc nettverk vedlegg enp0s3 linuxhint1

Når du har lagt til nettverksgrensesnittet, åpner du en ny SH -økt og sjekk om det nye virtuelle grensesnittet vil reflektere.

Med LXD kan du også sjekke status og forekomster av beholderen for å se om den kjører eller stoppet. For det, bruk Liste -Fast kommando.

$ LXC -liste - -rask

I utgangen nedenfor kan vi se at Linuxhint1 -beholderen kjører i tilstandskolonnen. Anta at vi hadde flere containere. Alle forekomstene vil ha sine stater og andre detaljer i tabellen nedenfor.

Du kan starte, stoppe eller starte containeren når som helst når som helst. For å stoppe beholderen, bruk Stoppe Søkeord etterfulgt av beholderen du vil stoppe.

$ lxc stopp linuxhint1

Anta at vi sjekker gjeldende tilstand på beholderen vår. Vi vil merke at det er stoppet. I så fall kan vi starte det med kommandoen nedenfor.

$ lxc start linuxhint1

Hvis vi har problemer med beholderen, kan vi raskt starte den på nytt med omstart -kommandoen.

$ LXC Restart Linuxhint1

Når du jobber med containere, kan du vise informasjonen til LXD -serverne ved hjelp av info kommando. Hvis du ikke spesifiserer containernavnet, vil utdataene vise informasjonen for alle tilgjengelige containere. Vi kan imidlertid spesifisere beholderen vi ønsker å hente ut informasjonen.

$ lxc info linuxhint1

Informasjonen som hentes inneholder alle detaljene i beholderen, for eksempel beholderens navn, dens status, typen, PID og ressursene beholderen bruker. Denne informasjonen er avgjørende for å administrere containeren din.

Fortsatt støtter LXD deling av filer til og fra en beholder. Det kan være at du vil skyve en gitt fil du opprettet for å gjøre den tilgjengelig fra beholderen eller trekke en fil fra beholderen til vertssystemet. I så fall kan du bruke trykk eller dra Nøkkelord etterfulgt av banen til filen.

I det første eksemplet forlater vi containeren og oppretter en som heter fil navn.tekst på vertssystemet. Deretter skyver vi den opprettede filen til beholderen. Likevel logger vi oss på beholderen og bekrefter at filen vår ble presset med suksess.

Her er syntaksen for å skyve en fil fra en vert til en beholder.

$ LXC File Push /Path/ Container/DestinationPath/On-Container

Tilsvarende oppretter eksemplet nedenfor et skript på beholderen. Vi trekker deretter det opprettede skriptet fra beholderen til vertssystemet i den nåværende katalogen. Den siste kommandoen viser innholdet i den gjeldende katalogen på verten for å bekrefte at vi trakk filen med hell.

$ lxc filtrekk container/bane/til-fil bane/til-destinasjon-på-vert

Den siste tingen er å vite hvordan du sletter den opprettede beholderen når den ikke lenger er nødvendig. Først må du stoppe den løpende beholderen.

Når den er stoppet, slett den ved hjelp av kommandoen nedenfor.

$ lxc slett container-navn

Dette handler om å lage og administrere containere ved hjelp av LXD. Hvis du blir sittende fast i LXD, kan du åpne hjelpesiden for å se hvilken kommando du kan bruke til et gitt formål. Dessuten kan du se hjelpesiden for en spesifikk kommando.

Konklusjon

LXD er en containermodell som tilbyr et REST API for å støtte administrasjon av LXC -containere. Du kan installere LXD som en snap -pakke og initialisere et LXC -miljøideal for å lage LXD -containere. Dette innlegget har tilbudt en praktisk opplæring om alt om LXD. Vi har diskutert hva LXD betyr, det.