Gedetailleerde introductie tot LXD-containers op Ubuntu

Containers zijn om vele redenen nuttig. Het isoleert applicaties van de rest van het systeem. Ze zijn draagbaar en gemakkelijk te klonen en/of over te zetten naar andere besturingssystemen. In het geval van Linux , ze werken op dezelfde manier onder elke distro, zonder noodzakelijke aanpassingen. Als u een container moet vervoeren van: RedHat voor Ubuntu Het zou gewoon een eenvoudig kopieerproces moeten zijn.

havenarbeider Het is een veelgebruikte oplossing die is ontworpen om een ​​enkele toepassing te bevatten: bijvoorbeeld een server MySQL-database. Gelijkaardig LXD In sommige opzichten, maar het is ontworpen om een ​​heel besturingssysteem te bevatten. Dit maakt het nuttig voor sommige scenario's. U kunt bijvoorbeeld: Maak een container LXD en installeer een databaseserver en http-server. U kunt dan Een WordPress-site maken intern. U kunt nu overschakelen van cloud naar cloud door deze LXD-container gewoon te verplaatsen wanneer dat nodig is wanneer u niet tevreden bent met uw vorige provider. Omdat het gemakkelijk is om een ​​container te klonen, kun je zelfs downloaden Jouw website aan meerdere cloudserviceproviders om een ​​redundante setup met hoge beschikbaarheid te creëren.

LXD werkt niet op virtuele machines zoals QEMU أو VirtualBox , wat betekent dat het erg snel is en een bijna lokale uitvoeringssnelheid biedt.

Installeer en configureer LXD

Open Terminal en installeer LXD, evenals ZFS-hulpprogramma's, waarmee u sommige processen kunt versnellen en schijfruimte kunt besparen wanneer u met containers werkt.

sudo apt install zfsutils-linux lxd

Start de LXD-configuratie.

sudo lxd init

Druk op ENTER om de standaardwaarden te selecteren.

Voor de grootte in GB voor het nieuwe loop-apparaat (minimaal 1 GB) [standaard = 15 GB], kunt u een andere waarde kiezen, zoals '50 GB' als u weet dat u veel containers gaat maken.

Een LXD-afbeelding zoeken en uitvoeren

Om alle Ubuntu-afbeeldingen weer te geven:

lxc image list ubuntu: arch=amd64

Er zullen veel resultaten zijn. Je kan kiezen boog weglaten = amd64 Als je afbeeldingen nodig hebt voor andere platforms, zoals ARM-processors (Raspberry Pi-apparaten gebruiken deze architectuur).

In de vorige afbeelding waren de resultaten beperkt (met |head) om het leesbaarder te maken. Vingerafdruk weergegeven Ubuntu 18.04 (84a71299044b)). Als u een container met deze distro wilt uitvoeren, zou de opdracht zijn:

lxc launch ubuntu: 84a71299044b

Op dit moment zal dit terugkeren met een toestemming geweigerde fout. Je moet in de "lxd" groep zitten. Uw gebruiker is al toegevoegd aan deze groep, maar om deze te activeren, moet u uitloggen en opnieuw inloggen. Als je dit wilt vermijden, gebruik dan dit commando, waarbij je "gebruiker" vervangt door je gebruikersnaam:

exec su - gebruiker

Nu werken lxc-opdrachten zonder dat sudo nodig is.

LXD-containers draaien met niet-Ubuntu-distributies

Dit commando laat je de andere beschikbare distributies zien:

lxc image list images: arch=amd64

Om een ​​afbeelding te starten, kunt u in plaats van een vingerafdruk ook een alias gebruiken als u er een in die lijst ziet staan.

lxc launch images:debian/9

Als u aan het einde een tekenreeks toevoegt, kunt u een naam voor uw container kiezen:

lxc launch images:debian/9 wordpress-site

LXD-containerbeheer

Om alle containers weer te geven:

lxc lijst

is een kolom"IPV4Vooral belangrijk als u in dit geval services hebt uitgevoerd. Als bijvoorbeeld een server Apache-http draait op de instantie, de vermelding "10.234.232.246In de browser wordt de website weergegeven die in de container wordt gehost.

Om de container te stoppen:

lxc stop naam_van_container

Dit kan lang duren (of mislukken) bij niet-Ubuntu-distributies. Je kunt maar beter een wikkel voor de container pakken, en als je naar binnen gaat, stap dan in systemctl uitschakelen om het uit te schakelen.

Als al het andere faalt, kun je een stop forceren met:

lxc stop naam_van_container --force

Om het te starten:

lxc start naam_van_container

Om binnen uw container te navigeren:

lxc shell naam_van_container

U kunt software installeren met “sudo apt installEn alles doen wat je zou doen op een gewone Linux-distributie, bijvoorbeeld een server configureren apache. Als u de container wilt verlaten, typt u gewoon:

afrit

Bestanden overzetten van/naar LXD-containers

Een bestand uploaden naar uw container:

lxc file push /path/to/local/file name_of_container/path/to/uploaded/file

Neem de naam op van het bestand dat moet worden gemaakt, niet alleen de map waarin u het wilt koppelen. Hier is een voorbeeld:

lxc-bestand push lxd-apt-install.png accurate-colt/var/www/website/upload.png

Om een ​​map te laden in plaats van een bestand:

lxc file push /pad/naar/lokale/directory naam_van_container/pad/naar/externe/directory --recursive --verbose

Voorbeeld:

lxc file push /bin accurate-colt/tmp --recursive --verbose

Om een ​​map van uw container naar uw hoofdbesturingssysteem te downloaden:

lxc file pull name_of_container/path/to/remote/directory /path/to/local/directory --recursive --verbose

Voorbeeld:

lxc file pull accurate-colt/tmp /tmp --recursive --verbose

Conclusie

Dit omvat: Primair gebruik van LXD-containers. Er zijn meer geavanceerde functies zoals snapshots en terugkeer, resourcebeperkingen zoals: processor وRAM , containers klonen, enzovoort. Het kan worden behandeld in een toekomstige tutorial als we merken dat lezers geïnteresseerd zijn in het onderwerp.

Ga naar de bovenste knop