Im Gegensatz zu einer virtuellen Maschinen teilt sich ein LXC Container den Linux Kernel mit dem Hostsystem. Die einzelnen Container werden jedoch von einander isoliert. LXC Container verhalten sich im Grunde wie eine VM. Sie bekommen eine eigene IP-Adresse, eigenen Speicher usw.
Mit Proxmox VE kann man LXC Container einfach über die Web-Oberfläche erstellen und muss sich nicht mit der Kommandozeile von LXC befassen. Zusätzlich stehen verschiedene Templates zur Verfügung, welche man einfach nutzen kann.
Wann nutze ich einen LXC Container und wann eine VM?
Das muss jeder für sich selber entscheiden. Im Gegensatz zu Docker, kann in einem LXC Container erst einmal jede Applikation problemlos genutzt werden.
Man spart jedoch Ressourcen, da keine VM läuft. Ich nutze LXC Container zum Beispiel um meinen Ubiquiti UniFi Controller laufen zu lassen oder für mein Monitoring.
Weitere Anwendungsfälle könnten ein Apt-Cacher-ng, ein Load Balancer oder ein DHCP Server sein.
Ich nutze LXC Container also für Kleinigkeiten welche man vom Rest der Infrastruktur trennen möchte, aber eine VM irgendwie zu viel des Guten ist.
Proxmox Virtual Environment - LXC Templates
Zuerst einmal muss man sich die gewünschten LXC Templates herunterladen. Dies kann man natürlich über die Proxmox VE Web-Oberfläche machen.
Dazu einfach den Storage auswählen, auf dem Container Templates gespeichert werden.
Im Standard ist dies local
. Mit einem Klick auf Templates bekommt man die Liste
der verfügbarer Templates angezeigt und kann das gewünschte Template einfach mit einem Klick auf "Download"
herunterladen.
LXC Container erstellen
Schritt 1
Einen neuen Container erstellt man über den Button "Create CT" in der oberen rechten Ecke.
Dabei wird man durch den kompletten Prozess geführt. Im ersten Schritt wird der Hostname und das spätere root
Passwort für den Container
festgelegt.
Schritt 2
Im zweiten Schritt wählt man dann das Template, welches man für den Container nutzen möchte.
Schritt 3
Ich überspringe einmal die Konfiguration von "Root Disk", "CPU" und "Memory" das sollte alles selbsterklärend sein.
Auch die Konfiguration für die Netzwerkkarte ist nicht wirklich spannend. Wenn man ein Netz mit DHCP hat, sollte man hier natürlich DHCP auswählen.
Die Netzwerkbrücke vmbr0
wurde bei der Installation von Proxmox VE automatisch erstellt.
Schritt 4
Nachdem man alle Einstellungen getroffen hat, erstellt Proxmox VE den neuen Container. Das geht in der Regel sehr schnell und ist deutlich schneller als eine neue VM zu installieren oder zu klonen.
Das Fenster mit den Statusinformationen kann dann einfach geschlossen werden. Oben links kann man schon den neuen Container "first-container" mit der ID 100 sehen.
LXC Container starten und benutzen
Der LXC Container kann wie eine VM über den "Start" Button gestartet werden. Ein Container "bootet" übrigends in 2 bis 3 Sekunden.
Über die Web-Oberfläche kann auf die Console des Containers zugegriffen werden.
Leider ist mir aufgefallen, dass die noVNC Console bei LXC Containern nicht immer so richtig funktionieren möchte. Wenn die Konsole einfach schwarz bleibt, kann einmal [Enter] drücken helfen.
Alternativ kann man auch vom Proxmox VE Server selber in einen Container springen.
Dazu einfach den Befehl pct enter <id>
eingeben. Dann landet man in dem LXC Container.
Natürlich kann man sich in dem Container auch einen SSH Server installieren.
Wenn man auf dem Hostsystem, also dem Proxmox VE Server selber, ps
oder htop
ausführt, bekommt man übrigends alle Prozesse angezeigt, welche in den Containern
ausgeführt werden.
LXC Container automatisch starten
Sehr praktisch finde ich die Möglichkeit, dass man LXC Container beim Boot des Hostsystems automatisch starten kann. So sind die Prozesse, welche in den LXC Container laufen, bereits nach wenigen Sekunden nach einem Neustart des Hostsystems wieder verfügbar.
Proxmox VE Wiki
An dieser Stelle möchte ich nochmal auf den Proxmox VE Wiki Beitrag zu Linux Container hinweisen.
Update 20.04.2018
Ich habe heute noch einen Beitrag geschrieben, wie man bestehende LXC Templates anpassen kann.