Besonderheit ist hierbei, dass der Kernel des Hosts genutz wird. Sowie das Filesystem des unter dem angegebenen Directorys. Standardmäßig ist dies /var/lib/lxc
.
Genutzt wurde ein Ubuntu 16.04.3 mit HWE Kernel in der minimal Version.
Erstellen
Als erstes müssen die Pakete für die LXC Erstellung und Verwaltung installiert werden.
apt install lxc
Um einen Container mit eigenem Betriebssystem zu erstellen, benötigt man ein entsprechendes Template. Sollte für apt APT::Install-Recommends "0";
gesetzt sein, müssen diese zusätzlich installiert werden.
apt install lxc-templates
Bei debianoiden Templates wird zusätzlich noch das Paket debootstrap
benötigt.
Diese Templates liegen im Ordner /usr/share/lxc/templates/
Hier lassen sich auch die weitern Templates einsehen, wie Centos und Fedora.
Nach der Installation der Templates kann ein Container erstellt werden. In dem Beispiel habe ich den Name „Nginx“ gewählt und das Template Ubuntu.
lxc-create -n [gewünschter Containername] -t [Templatename]
Bei der Erstellung des Containers werden die benötigten Programme, welche im Container anschließend vorhanden sein sollen, installiert. Hierzu müssen die Pakete erreichbar sein. Die Paketliste des Hostsystems bleibt hierbei unberührt.
Nach der Erstellung werden Infos bereitgestellt, wie sich im Container angemeldet werden kann. Hier am Beispiel des Ubuntu Templates.
##
# The default user is 'ubuntu' with password 'ubuntu'!
# Use the 'sudo' command to run tasks as root in the container.
##
Anschließend kann der Container gestartet werden.
lxc-start -n [Containername]
Initialer Login kann über die LXC-Konsoleper oder SSH geschehen(vorrausgesetzt im Containertemplate ist ssh vorgesehen und der Container hat über DHCP eine IP bekommen).
Folgendermaßen lässt sich auf die Konsole zugreifen.
lxc-console -n [Containername]
Hier kann der Container normal benutz werden. Die LXC-Konsole kann über STRG + a + q geschlossen werden.
Aus Sicherheitsaspekt sollte der ubuntuuser ein anderes Passwort bekommen oder gelöscht werden. Zubeachten ist das sich in der LXC-Konsole nicht mit dem Root anmelden lässt.
Löschen
Um einen LXC Container zu löschen, muss dieser gestoppt sein.
lxc-stop -n [Containername]
Anschließend kann dieser gelöscht werden.
lxc-destroy -n [Containername]