Startpagina > Pakket- en systeembeheer > systemd-nspawn

systemd-nspawn: Lichtgewicht containers uitvoeren

systemd-nspawn is onderdeel van het systemd-project en is een tool voor het creëren en uitvoeren van geïsoleerde Linux-containeromgevingen zonder de noodzaak van virtuele machines. Het wordt gebruikt om systemen te isoleren voor testen, ontwikkeling en implementatie, wat krachtiger is dan chroot en lichter dan virtuele machines.

Overzicht

systemd-nspawn voert containers uit door de kernel van het host-systeem te delen, terwijl het bestandssysteem, de procesboom, het netwerk, enz. wordt geïsoleerd. Dit is nuttig voor het veilig scheiden van ontwikkel- en testomgevingen, of voor het uitproberen van omgevingen van verschillende distributies.

Belangrijkste kenmerken

  • Biedt een lichtgewicht containeromgeving
  • Deelt de host-kernel en efficiënt gebruik van bronnen
  • Isolatie van bestandssysteem, processen en netwerk
  • Krachtigere isolatiefuncties dan chroot
  • Ondersteunt het opstarten van systemd-gebaseerde containers

Belangrijkste opties

De belangrijkste opties van systemd-nspawn regelen het gedrag van de container, het isolatieniveau, netwerkinstellingen, enz.

Standaard containerinstellingen

Netwerkinstellingen

Bronnen en rechten

Gegenereerde opdracht:

Probeer de opdrachtcombinaties.

Uitleg:

`systemd-nspawn` Voer het commando uit.

Combineer deze opties en voer de opdracht virtueel uit met de AI.

Gebruiksvoorbeelden

Voorbeelden van het uitvoeren van verschillende containeromgevingen met systemd-nspawn.

Standaard container uitvoeren (bash)

sudo systemd-nspawn -D /var/lib/machines/mycontainer /bin/bash

Start een container met het opgegeven root-bestandssysteem en voer een bash-shell uit.

systemd boot container

sudo systemd-nspawn -b -D /var/lib/machines/mycontainer

Start een container met systemd als het initiële proces om een volledige systeemomgeving te bieden.

Netwerk geïsoleerde container

sudo systemd-nspawn --private-network -D /var/lib/machines/mycontainer /bin/bash

Voer een container uit zonder netwerkinterfaces om externe netwerktoegang te blokkeren.

Host pad bind mount

sudo systemd-nspawn -D /var/lib/machines/mycontainer --bind=/home/user/data:/mnt/data /bin/bash

Mount de /home/user/data directory van de host naar /mnt/data in de container.

Netwerkverbinding met virtuele Ethernet

sudo systemd-nspawn -D /var/lib/machines/mycontainer --network-veth /bin/bash

Creëert een virtuele Ethernet-interface tussen de host en de container om het netwerk te verbinden.

Installatie

systemd-nspawn wordt geleverd als onderdeel van het `systemd-container` pakket. Op de meeste systemd-gebaseerde Linux-distributies is het standaard geïnstalleerd of eenvoudig te installeren.

Debian/Ubuntu

sudo apt update && sudo apt install systemd-container

Installeer het systemd-container pakket met de apt pakketbeheerder.

Fedora/RHEL/CentOS

sudo dnf install systemd-container

Installeer het systemd-container pakket met de dnf pakketbeheerder.

Arch Linux

sudo pacman -S systemd-container

Installeer het systemd-container pakket met de pacman pakketbeheerder.

Tips & Aandachtspunten

Tips en aandachtspunten voor het effectief gebruiken van systemd-nspawn.

Belangrijkste tips

  • **Root-rechten vereist**: systemd-nspawn heeft toegang nodig tot systeembronnen, dus het moet worden uitgevoerd met `sudo` of root-rechten.
  • **Voorbereiding container-image**: Het root-bestandssysteem van de container moet van tevoren zijn voorbereid. U kunt het genereren met tools zoals `debootstrap`, `dnf --installroot`, `pacstrap`, enz.
  • **Begrijp netwerkinstellingen**: `--network-veth` staat communicatie tussen de host en de container toe, terwijl `--private-network` de container volledig isoleert. Kies de juiste optie op basis van uw doel.
  • **Beveiligingsoverwegingen**: Hoewel systemd-nspawn sterke isolatie biedt, deelt het de host-kernel, waardoor het mogelijk kwetsbaarder is voor beveiligingslekken dan volledige virtualisatieoplossingen zoals Docker. Wees voorzichtig bij het uitvoeren van onbetrouwbare code.


Hétzelfde categoriecommando