{"id":15774,"date":"2025-10-24T11:40:24","date_gmt":"2025-10-24T09:40:24","guid":{"rendered":"https:\/\/www.cloudandheat.com\/?p=15774"},"modified":"2025-10-27T10:57:25","modified_gmt":"2025-10-27T09:57:25","slug":"use-of-open-container-initiative-oci-container-images-as-linux-container-lxc-in-proxmox-ve","status":"publish","type":"post","link":"https:\/\/www.cloudandheat.com\/en\/nutzung-von-open-container-initiative-oci-container-images-als-linux-containern-lxc-in-proxmox-ve\/","title":{"rendered":"Use of Open Container Initiative (OCI) container images as Linux Containers (LXC) in Proxmox VE"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"15774\" class=\"elementor elementor-15774\" data-elementor-post-type=\"post\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c67cb18 e-flex e-con-boxed e-con e-parent\" data-id=\"c67cb18\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-e1ac817 e-flex e-con-boxed e-con e-parent\" data-id=\"e1ac817\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f4af763 elementor-widget elementor-widget-text-editor\" data-id=\"f4af763\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>In diesem Blogpost wird gezeigt, wie sich <a href=\"https:\/\/opencontainers.org\/\">OCI<\/a>-konforme Container-Images direkt als <a href=\"https:\/\/linuxcontainers.org\/\">LXC-Container<\/a> in Proxmox Virtual Environment (Proxmox VE) verwenden lassen. Es wird dabei insbesondere auf die Portierung der Container und den dauerhaften Betrieb via Systemd eingegangen.<\/p><p>Um die Unterschiede zwischen OCI-Containern und LXC-Containern zu verstehen, lohnt sich ein kleiner Exkurs auf die zugrunde liegenden Virtualisierungskonzepte und ihre jeweiligen St\u00e4rken.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d18f512 e-flex e-con-boxed e-con e-parent\" data-id=\"d18f512\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-932f5c0 elementor-widget elementor-widget-heading\" data-id=\"932f5c0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Warum nutzen wir Virtualisierung?\n<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3af1ccd elementor-widget elementor-widget-text-editor\" data-id=\"3af1ccd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Virtualisierung erm\u00f6glicht eine bessere <strong>Verteilung von Ressourcen<\/strong> und\u00a0 eine Effizienzsteigerung im Betrieb von Cloud-Infrastrukturen. Dar\u00fcber hinaus tr\u00e4gt sie zur <strong>Stabilisierung und Beschleunigung<\/strong> von Deployment-Prozessen bei, da sich Testumgebungen schneller und einfacher in ihren Ursprungszustand zur\u00fcckversetzen lassen. Insbesondere profitiert die Softwareentwicklung (ebenso wie die Governance) davon, weil Abh\u00e4ngigkeiten der eingesetzten Software besser bestimmt und passgenau bereitgestellt werden k\u00f6nnen.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1b71e63 e-flex e-con-boxed e-con e-parent\" data-id=\"1b71e63\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-79245e0 elementor-widget elementor-widget-spacer\" data-id=\"79245e0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b7011de elementor-widget elementor-widget-heading\" data-id=\"b7011de\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Welche Arten der Virtualisierung gibt es?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3ff7a53 elementor-widget elementor-widget-text-editor\" data-id=\"3ff7a53\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Es gibt verschiedene Arten der Virtualisierung, die jeweils auf unterschiedliche Einsatzszenarien zugeschnitten sind. <strong>Betriebssystemvirtualisierung<\/strong> wird h\u00e4ufig genutzt, um Legacy-Anwendungen, die sehr spezifische Anforderungen an das Betriebssystem stellen, weiterhin sicher betreiben zu k\u00f6nnen. Durch die Abstraktion vom zugrunde liegenden physischen System k\u00f6nnen solche Anwendungen auch auf moderner Hardware lauff\u00e4hig gemacht werden. Weiterhin tr\u00e4gt diese Virtualisierungsart dazu bei, die Hardwareregeneration sicherzustellen. Technisch umgesetzt wird dies typischerweise mit (Kernel-basierten) virtuellen Maschinen (KVMs) oder falls es sich um Linux basierte Applikationen handelt mit LXC-Containern.<\/p><p>Bei der <strong>Anwendungsvirtualisierung<\/strong> liegt der Fokus auf der Isolation einzelner Anwendungen samt ihrer Laufzeitumgebung. Dies hat den Vorteil, dass weniger Systemressourcen ben\u00f6tigt werden, da lediglich die f\u00fcr die Anwendung erforderlichen Softwarekomponenten \u2013 in Form des Root-Filesystems (rootfs) \u2013 als Paket geb\u00fcndelt werden. Diese geb\u00fcndelte Einheit wird dann als geschlossene Anwendung ausgef\u00fchrt. Typische Vertreter dieser Virtualisierungsform sind OCI-konforme Container-Images, die mit Tools wie Docker, Podman oder systemd-nspawn\u00a0 gestartet werden k\u00f6nnen, ebenso aber auch ein klassisches chroot.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-4176851 e-flex e-con-boxed e-con e-parent\" data-id=\"4176851\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-221cd9c elementor-widget elementor-widget-spacer\" data-id=\"221cd9c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-969aeaf elementor-widget elementor-widget-heading\" data-id=\"969aeaf\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Virtualisierungsansatz mit Proxmox VE<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-94d9264 elementor-widget elementor-widget-text-editor\" data-id=\"94d9264\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Der Ansatz von Proxmox VE <strong>setzt prim\u00e4r auf Betriebssystemvirtualisierung<\/strong> und nutzt <strong>Anwendungsvirtualisierung \u00fcblicherweise erst innerhalb der Gastsysteme<\/strong>. Aus meiner Sicht ist dies grunds\u00e4tzlich sinnvoll: Es erm\u00f6glicht die klare Kapselung von Zust\u00e4ndigkeiten &#8211; zwischen dem System, das die eigentlichen Hardwareressourcen verwaltet, und den Gastsystemen, die Laufzeitumgebungen bereitstellen (insbesondere eigenst\u00e4ndige Kernel mit dedizierten IP-Stacks). Diese Trennung von Zust\u00e4ndigkeiten und Abh\u00e4ngigkeiten sorgt nicht nur f\u00fcr Stabilit\u00e4t, sondern erleichtert auch die Wartung und Updates des Systems. Damit wird die Grundlage f\u00fcr einen langfristig stabilen und sicheren Betrieb gelegt. Durch die Kapselung wird auch der Hypervisor gesch\u00fctzt, was zus\u00e4tzlich die Stabilit\u00e4t der parallel ausgef\u00fchrten Workloads erh\u00f6ht. Ein weiterer Vorteil ist auch, dass die Transferleistung f\u00fcr den Betrieb der einzelnen Workloads in den VMs niedriger ist, da Betriebssystemvirtualisierung bekannte Konzepte aus dem Betrieb physikalischer Maschinen \u00fcbertr\u00e4gt.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c8c1bd0 e-flex e-con-boxed e-con e-parent\" data-id=\"c8c1bd0\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-740201d elementor-widget elementor-widget-spacer\" data-id=\"740201d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-43c1eb8 elementor-widget elementor-widget-heading\" data-id=\"43c1eb8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Vorteile der Virtualisierung und warum sie direkt auf dem Hypervisor eingesetzt wird<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ecae2ca elementor-widget elementor-widget-text-editor\" data-id=\"ecae2ca\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Ein <strong>anschauliches Beispiel<\/strong> f\u00fcr die Bedeutung der Trennung von Applikationen und der darunterliegenden Hardwareressourcenverwaltung stammt aus meiner Zeit bei einem fr\u00fcheren Arbeitgeber, der \u00fcber 300 Linux-Server im Einsatz hatte. Dort wurde eine Jira-Applikation betrieben, die von bestimmten Java-Runtime-Versionen abh\u00e4ngig war. Offizieller Support war damals &#8211; noch vor meiner Zeit &#8211; nur f\u00fcr eine \u201eEnterprise&#8220;-Linux-Distribution vorhanden. Als Red Hat-affines Unternehmen entschied man sich f\u00fcr RHEL 5. Die Situation wurde kompliziert, als Jira aus lizenzrechtlichen Gr\u00fcnden nicht mehr updatef\u00e4hig war. Um die Kompatibilit\u00e4t zur mitgelieferten Java-Runtime zu gew\u00e4hrleisten, wurde die gesamte Betriebssystemversion auf RHEL 5 \u201eeingefroren\u201c (sehr zur Freude der IT-Security, denn damit lief nach 10 Jahren auch die Versorgung mit Security Patches aus). Weder die Anwendungsbetreiber noch das zust\u00e4ndige Linux-\/Unix-Betriebsteam hatten ausreichend Ressourcen, um diese Altlast dauerhaft zu pflegen. \u00c4hnliche Probleme traten auch \u00f6fter bei Anwendungen auf, die auf veraltete Python- oder PHP-Versionen angewiesen waren.<\/p><p>Diese Anekdote verdeutlicht, <strong>wie wichtig die Anwendungsvirtualisierung ist<\/strong>. In gr\u00f6\u00dferen Cloud-Umgebungen bieten sich hierf\u00fcr L\u00f6sungen wie <a href=\"https:\/\/tarook.cloud\/\">Tarook<\/a>\u00a0, ein Open-Source Lifecycle Management Tool f\u00fcr Kubernetes, an. In kleineren Setups hingegen sind Werkzeuge wie Docker oder Podman, betrieben innerhalb von Virtuellen Machines, alternative L\u00f6sungen. Auch dieser Ansatz profitiert dabei von den Hochverf\u00fcgbarkeitsmechanismen der Proxmox VE L\u00f6sung.<\/p><p>Ein zentraler Vorteil der Anwendungsvirtualisierung, <strong>insbesondere durch den Einsatz von OCI-Images<\/strong>, liegt in der Standardisierung. Diese Standardisierung und der Erfolg von Docker sowie vergleichbaren L\u00f6sungen haben ein breit gef\u00e4chertes \u00d6kosystem hervorgebracht, welches es erm\u00f6glicht, getestete Anwendungen schnell und einfach \u00fcber Container-Registries zu verteilen.<\/p><p>Als Unternehmen, das Kubernetes mit OCI-basierte Images f\u00fcr die Bereitstellung der eigenen OpenStack-Deployments bereits verwendet, bietet es sich f\u00fcr Cloud&amp;Heat an, L\u00f6sungen, die auf diese Weise bereits bereitgestellt werden, auch f\u00fcr die Konfiguration von Proxmox-VE-Deployments zu verwenden. Obwohl die Proxmox VE Umgebungen selbst keine direkte Abh\u00e4ngigkeit zu OCI-Images haben, werden diese intern verwendet, um vorhandene L\u00f6sungen (z.B. f\u00fcr das Usermanagement) zu portieren. Praktischerweise <strong>bieten die von Proxmox VE mitgelieferten LXC-Services hierf\u00fcr ein Kompatibilit\u00e4tslayer an.<\/strong><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-05e135c e-flex e-con-boxed e-con e-parent\" data-id=\"05e135c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fa7c1c0 elementor-widget elementor-widget-spacer\" data-id=\"fa7c1c0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-122a403 elementor-widget elementor-widget-heading\" data-id=\"122a403\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Implementierung von OCI-Images als LXC-Containern in Proxmox VE<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-158257a elementor-widget elementor-widget-text-editor\" data-id=\"158257a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h5><strong>Technische Voraussetzungen<\/strong><\/h5><p>Um OCI-Images aus Registries beziehen zu k\u00f6nnen, ist unter Proxmox VE die Installation der Pakete skopeo und umoci notwendig:<\/p><pre>apt install skopeo umoci<\/pre><p>Nach der Installation finden sich auf dem System einige typische Konfigurationsdateien, wie man sie in \u00e4hnlicher Form bereits von Docker- oder Podman-Installationen kennt. Ein Beispiel daf\u00fcr ist die Datei <em>\/var\/lib\/containers\/cache\/blob-info-cache-v1.boltdb<\/em>. Diese Datei wird verwendet, um die OCI-Layer zu tracken.<\/p><p>Weiterhin finden sich Konfigurationen zu sogenannten &#8222;Well-Known&#8220; Images und Registries unter:<\/p><pre>root@pve:~# tree \/etc\/containers\/\n\/etc\/containers\/\n\u251c\u2500\u2500 policy.json\n\u251c\u2500\u2500 registries.conf\n\u2514\u2500\u2500 registries.conf.d\n\u2514\u2500\u2500 shortnames.conf<\/pre><p>Und schlie\u00dflich besteht auch die M\u00f6glichkeit, Credentials f\u00fcr protected Registries zu hinterlegen unter:<\/p><pre>root@pve:~# cat ~\/.docker\/config.json\n{\"auths\":\n{\u00a0 \"&lt;registry url e.g. gittlab-registry.cloudandheat.com&gt;\":\n{ \"auth\": \"&lt;token_name + token_value | b64encoded&gt;\" } }\n}<\/pre><p><strong>\u00a0<\/strong><\/p><h5><strong>Konfiguration der Container<\/strong><\/h5><p>Nach der Konfiguration der Containerquellen ist es nun m\u00f6glich, \u00fcber die LXC cli tools entsprechende Container zu erstellen. Die LXC-Container, die via der Proxmox VE WebUI bzw. dem pct cli tool erstellt werden, werden ebenfalls als LXC-Container unter <em>\/var\/lib\/lxc\/<\/em> erstellt. Sie werden durch die Proxmox VE- eigenen Verwaltungstools so konfiguriert, dass die LXC-Services sie starten und verwalten k\u00f6nnen.<\/p><p>Dieses Vorgehen ist auch f\u00fcr die Konfiguration der LXC-Container aus OCI-Images notwendig, wenn man nicht den Komfort der PVE-Tools nutzt. Container, die \u00fcber die PVE-Tools erstellt werden, werden im \u00dcbrigen unter <em>\/var\/lib\/lxc\/&lt;id&gt;<\/em> erstellt. Dies sollte man bei der Erstellung weiterer manueller LXC-Container beachten.<\/p><p>Ein weiterer wichtiger Punkt: Die PVE Tools ignorieren die Standardwerte, die f\u00fcr neu erstellte LXC-Container aus der Datei <em>\/etc\/lxc\/default.conf<\/em> \u00fcbernommen werden. Das bedeutet, dass globale Anpassungen f\u00fcr Default-Werte hier durchaus gesetzt werden k\u00f6nnten, ohne mit den Proxmox-Containern zu kollidieren.<\/p><p>Wenn wir nun einen neuen LXC-Container mit der Option <em>&#8211;template=oci<\/em> erstellen, z.B.:<\/p><pre>root@pve:~# lxc-create --name bash --template=oci -- --url docker:\/\/bash:devel-alpine3.22\nCopying blob ed9f46a56c4c skipped: already exists\nCopying blob 9824c27679d3 skipped: already exists\nCopying blob 1926526997ec skipped: already exists\nCopying blob 429cd906597a skipped: already exists\nCopying config 376e768ec4 done\nWriting manifest to image destination\nStoring signatures\nmfpath=\/var\/lib\/lxc\/bash\/oci\/blobs\/sha256\/8c4dd3f704a443e34a1aa9952b304de5148c54388ff6aed80d0a2b06db1da65d conf=\/var\/lib\/lxc\/bash\/oci\/blobs\/sha256\/376e768ec4e15b92ee8ddb2ea388c2418902684b24eb8ef58421ba85478ab296\nmediatype=application\/vnd.oci.image.layer.v1.tar+gzip\nUnpacking tar rootfs<\/pre><p>wird die entsprechende Container-Konfiguration unter <em>\/var\/lib\/lxc\/&lt;container_name&gt;<\/em> erzeugt:<\/p><pre>root@pve:~# ls \/var\/lib\/lxc\/bash\nconfig\u00a0 oci\u00a0 rootfs<\/pre><p>Beim Erstellen sollte man sich von der URL-Option nicht verunsichern lassen: \u201e<em>docker:\/\/<\/em>\u201c spezifiziert hierbei das verwendete Protokoll, um die Registry zu erreichen. Danach kann jede URL verwendet werden, die sich gem\u00e4\u00df der Konfiguration unter <em>\/etc\/containers\/registries.conf*<\/em> aufl\u00f6sen l\u00e4sst. Hierf\u00fcr wird skopeo verwendet, das auch weiterf\u00fchrende Informationen auf den Manpages bereitstellt.<\/p><p>Nach erfolgreicher Erstellung eines Containers findet sich im Pfad <em>\/var\/lib\/lxc\/&lt;container_name&gt;<\/em> folgende Struktur:<\/p><ul><li>den Ordner oci, der die Blobs sowie die dazugeh\u00f6rigen Informationen enth\u00e4lt<\/li><li>den Ordner rootfs, der die aus den Blobs zusammengesetzte Ordnerstruktur f\u00fcr unseren LXC-Container enth\u00e4lt<\/li><li>die config-Datei, die Informationen f\u00fcr LXC bereith\u00e4lt, wie der entsprechende Container zur Laufzeit zu konfigurieren ist. Direkt nach der Erstellung via lxc-create findet sich dort eine Kombination aus den Werten in <em>\/etc\/lxc\/default.conf<\/em> und den Informationen, die sich aus dem Image ableiten lassen. In den meisten F\u00e4llen ist dies allerdings nicht direkt lauff\u00e4hig:<\/li><\/ul><pre>root@pve:~# cat \/var\/lib\/lxc\/bash\/config\n# Template used to create this container: \/usr\/share\/lxc\/templates\/lxc-oci\n# Parameters passed to the template: --url docker:\/\/bash:devel-alpine3.22\n# For additional config options, please look at lxc.container.conf(5)\n\n# Uncomment the following line to support nesting containers:\n#lxc.include = \/usr\/share\/lxc\/config\/nesting.conf\n# (Be aware this has security implications)\n\n## generated by Ansible ch-docker-2-lcx - do not change manually\nlxc.net.0.type = veth\nlxc.net.0.link = lxcbr0\nlxc.net.0.flags = up\nlxc.net.0.hwaddr = 00:16:3e:f3:c8:35\nlxc.rootfs.path = dir:\/var\/lib\/lxc\/bash\/rootfs\nlxc.execute.cmd = '\"docker-entrypoint.sh\"\u00a0 \"bash\" '\nlxc.mount.auto = proc:mixed sys:mixed cgroup:mixed\nlxc.environment = PATH=\/usr\/local\/sbin:\/usr\/local\/bin:\/usr\/sbin:\/usr\/bin:\/sbin:\/bin\nlxc.environment = _BASH_COMMIT=cf8a2518c8b94f75b330d398f5daa0ee21417e1b\nlxc.environment = _BASH_VERSION=devel-20250918\nlxc.include = \/usr\/share\/lxc\/config\/common.conf\nlxc.include = \/usr\/share\/lxc\/config\/oci.common.conf\nlxc.uts.name = bash\nlxc.init.uid = 0\nlxc.init.gid = 0\nlxc.init.cwd = \/<\/pre><p>Zum Vergleich anbei noch die verwendete Datei unter <em>\/etc\/lxc\/default.conf<\/em> auf dem Testsystem:<\/p><pre>root@pve:~# cat \/etc\/lxc\/default.conf\n## generated by Ansible ch-docker-2-lcx - do not change manually\nlxc.net.0.type = veth\nlxc.net.0.link = lxcbr0\nlxc.net.0.flags = up\nlxc.net.0.hwaddr = 00:16:3e:xx:xx:xx<\/pre><p>Um einen lauff\u00e4higen Container zu erhalten, muss die config-Datei angepasst werden. Jede inkompatible Konfiguration kann zu einem nicht lauff\u00e4higen Container f\u00fchren. Dies umfasst aufgrund der Default-Konfigurationswerte meistens mindestens das Netzwerkinterface <em>lxc.net.0<\/em>. F\u00fcr eine vollst\u00e4ndige und korrekte Konfiguration lohnt sich ein Blick in die offizielle Dokumentation:<\/p><ul><li><a href=\"https:\/\/linuxcontainers.org\/lxc\/manpages\/man5\/lxc.container.conf.5.html\">https:\/\/linuxcontainers.org\/lxc\/manpages\/\/man5\/lxc.container.conf.5.html<\/a><\/li><li><pre>man lxc.container.conf.<\/pre><\/li><\/ul><p>Dort findet man eine umfassende \u00dcbersicht aller verf\u00fcgbaren Konfigurationsoptionen. Au\u00dferdem erh\u00e4lt man g\u00fcltige Keys zur Konfiguration von Umgebungsvariablen, die im OCI-Kontext h\u00e4ufig f\u00fcr lauff\u00e4hige Container ben\u00f6tigt werden, oder f\u00fcr durchgereichte Pfade als persistente Volumes.<\/p><p>Bei der Suche nach m\u00f6glichen Fehlerursachen, bietet es sich an, die Container im Vordergrund mit den entsprechenden Logoptionen zu starten, um diese analysieren zu k\u00f6nnen. Zum Beispiel:<\/p><pre>root@pve:~# lxc-start bash --foreground --logpriority=DEBUG --logfile=~\/test.log\ncan't run '\/sbin\/openrc': No such file or directory\ncan't run '\/sbin\/openrc': No such file or directory\ncan't run '\/sbin\/openrc': No such file or directory\ncan't open \/dev\/tty5: No such file or directory\ncan't open \/dev\/tty6: No such file or directory\ncan't open \/dev\/tty5: No such file or directory<\/pre><p>Das weist darauf hin, das in unserem Beispiel die Datei <em>\/sbin\/openrc<\/em> innerhalb des Containers nicht gefunden wurde. Eine kurze \u00dcberpr\u00fcfung des Containers im rootfs ergibt, dass diese executable auch nicht vorhanden ist:<\/p><pre>root@pve:~# ls \/var\/lib\/lxc\/bash\/rootfs\/sbin\/openrc\nls: cannot access '\/var\/lib\/lxc\/bash\/rootfs\/sbin\/openrc': No such file or directory<\/pre><p>F\u00fcr die Kompatibilit\u00e4t mit zuk\u00fcnftigen Versionen des OCI-Images w\u00e4re es hilfreich, das urspr\u00fcngliche initiale Startkommando durch ein geeignetes Kommando zu ersetzen:<\/p><pre>## Konfiguration nach der Erstellung\nlxc.execute.cmd = '\"docker-entrypoint.sh\"\u00a0 \"bash\" '\n\n## Startf\u00e4hige Konfiguration\nlxc.init.cmd = \/bin\/sh<\/pre><p>Anbei befindet sich eine lauff\u00e4hige Minimalkonfiguration nach den Anpassungen f\u00fcr unser Beispiel:<\/p><pre>root@pve:~# cat \/var\/lib\/lxc\/bash\/config\n## generated by Ansible ch-docker-2-lcx - do not change manually\n# Template used to create this container: \/usr\/share\/lxc\/templates\/lxc-oci\n# Parameters passed to the template: --url docker:\/\/bash:devel-alpine3.22\n# For additional config options, please look at lxc.container.conf(5)\n# Uncomment the following line to support nesting containers:\n\nlxc.net.0.type = none\nlxc.rootfs.path = dir:\/var\/lib\/lxc\/bash-example\/rootfs\nlxc.environment = USER=root\nlxc.include = \/usr\/share\/lxc\/config\/common.conf\nlxc.include = \/usr\/share\/lxc\/config\/oci.common.conf\nlxc.init.cmd = \/bin\/sh\nlxc.uts.name = bash-example\nlxc.environment = USER=root\nlxc.init.uid = 0\nlxc.init.gid = 0\nlxc.init.cwd = \/<\/pre><p>Mit der angepassten Konfiguration ist der Container lauff\u00e4hig und kann \u00fcber die LXC-Tools verwaltet werden:<\/p><pre># Starten des Containers\nroot@px121:~# lxc-start --name=bash\n\n# Abruf der Laufzeit informationen\nroot@px121:~# lxc-info --name=bash\nName:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 bash\nState:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 RUNNING\nPID:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 33520\nIP:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 10.10.10.121\nIP:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 10.10.11.121\nIP:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 10.10.12.121\n\n# Ausf\u00fchren von Commands innerhalb des Containers\nroot@px121:~# lxc-attach --name=bash\n~ # echo \"Hello World\"\nHello World\n~ # exit\n\n# Der Container stoppt nicht automatisch nach dem Verlassen\nroot@px121:~# lxc-info --name=bash\nName:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 bash\nState:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 RUNNING\nPID:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 33520\nIP:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 10.10.10.121\nIP:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 10.10.11.121\nIP:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 10.10.12.121\n\n# Stop des Containerprozesses (--kill f\u00fcr ein hartes Beenden)\nroot@px121:~# lxc-stop --name=bash\n\nroot@px121:~# lxc-info --name=bash\nName:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 bash\nState:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 STOPPED\n\n# Direktes Starten und Ausf\u00fchren eines spezifischen Kommandos.\n\nroot@px121:~# lxc-execute --name=bash -- echo \"hello world\"\nhello world\nroot@px121:~# lxc-info --name=bash\nName:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 bash\nState:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 STOPPED<\/pre><p>Durch das direkte Starten und Ausf\u00fchren eines einzelnen Kommandos k\u00f6nnen OCI-Images portiert werden, um fertig verpackte Programme mithilfe von Aliasen wie native Kommandos direkt auf dem Host auszuf\u00fchren:<\/p><pre>root@px121:~# alias hello-from-oci=\"lxc-execute --name=bash -- echo 'hello from oci'\"\nroot@px121:~# hello-from-oci\nhello from oci<\/pre><p>Eine weitere Option ist es, die adaptierten LXC-Container als Daemons laufen zu lassen. Daf\u00fcr gibt es die M\u00f6glichkeiten, entweder lxc-autostart oder Systemd zu verwenden:<\/p><ul><li><strong>lxc-autostart: <\/strong>Durch einen einfachen Eintrag der Zeile <em>lxc.start.auto = 1<\/em> in der config-Datei des jeweiligen Containers wird sichergestellt, dass der Container nach dem Boot ebenfalls gestartet wird. Erweitere Optionen, etwa f\u00fcr verz\u00f6gerte Starts und Abh\u00e4ngigkeiten, lassen sich unter <a href=\"https:\/\/linuxcontainers.org\/lxc\/manpages\/man5\/lxc.container.conf.5.html#lbBK\">https:\/\/linuxcontainers.org\/lxc\/manpages\/\/man5\/lxc.container.conf.5.html#lbBK <\/a>einsehen. Wichtig zu beachten ist, dass lxc-autostart Container nicht neu startet, wenn diese beispielsweise durch einen Fehler oder manuelle Eingriffe gestoppt wurden. Dieses Verhalten kann in einige F\u00e4lle, z.B. f\u00fcr Systemdienste, explizit gew\u00fcnscht sein. Daher zeigen wir im n\u00e4chsten Abschnitt, wie die LXC-Container mit Systemd verwaltet werden k\u00f6nnen.<\/li><li><strong>Systemd: <\/strong>Systemd bietet die M\u00f6glichkeit, mit Template-Files zu arbeiten. Diese sind durch die Verwendung des &#8218;@&#8216;-Zeichens vor dem eigentlichen Systemd-Unit-File-Endung markiert. Dies k\u00f6nnen genutzt werden, indem wir ein einzelnes Template f\u00fcr unsere Services in<em> \/etc\/systemd\/system<\/em> erzeugen:<\/li><\/ul><pre>root@px121:~# cat \/etc\/systemd\/system\/lxc-oci@.service\n[Unit]\nDescription=%i run from OCI as LXContainer via systemd\nDocumentation=\"https:\/\/gitlab.com\/cloudandheat\"\nConditionPathExists=\/var\/lib\/lxc\/%i\nWants=lxc.service\nAfter=lxc.service\n\n[Service]\nEnvironment=\"START_ARGS=--name=%i --pidfile=\/var\/lib\/lxc\/%i\/pid\"\nEnvironment=\"STOP_ARGS=--name=%i\"\nExecStart=\/usr\/bin\/lxc-start $START_ARGS\nExecStop=\/usr\/bin\/lxc-stop $STOP_ARGS\nRestart=always\nPIDFile=\/var\/lib\/lxc\/%i\/pid\nType=simple\n\n[Install]\nWantedBy=multi-user.target<\/pre><p>Es gibt in den Systemd-Files einige spezifische Variablen, z.B. wird %i durch die escapte Variante der Service-Unit hinter dem &#8218;@&#8216; ersetzt. Damit k\u00f6nnen Systemd-Services auf einfache Weise generiert werden:<\/p><pre>root@px121:~# systemctl start lxc-oci@bash.service\nroot@px121:~# systemctl status lxc-oci@bash.service<br \/>\u25cf lxc-oci@bash.service - bash run from OCI as LXContainer via systemd<\/pre><pre>       Loaded: loaded (\/etc\/systemd\/system\/lxc-oci@.service; disabled; preset: enabled)\n       Active: active (running) since Wed 2025-10-01 13:24:55 CEST; 5s ago\n       Docs: https:\/\/gitlab.com\/cloudandheat\n       Main PID: 3960 (lxc-start)\n       Tasks: 0 (limit: 3472)\n       Memory: 484.0K\n       CPU: 317ms\n       CGroup: \/system.slice\/system-lxc\\x2doci.slice\/lxc-oci@bash.service\n               \u2023 3960 \"[lxc monitor] \/var\/lib\/lxc bash\"<\/pre><p>Durch die Verwendung der PID-File-Direktive im Systemd-Service-Template und im ExecStart- Kommando, hat der Systemd-Service nun die M\u00f6glichkeit zu erkennen, ob der Prozess gestoppt wurde, ohne das Systemd als zentraler Verwaltungsservice dar\u00fcber informiert wurde.<\/p><h5>\u00a0<\/h5><h5><strong>Deployments via Ansible<\/strong><\/h5><p>Da wir unser Workloads selbstverst\u00e4ndlich nicht h\u00e4ndisch konfigurieren, haben wir f\u00fcr den oben beschriebenen Ablauf selbstverst\u00e4ndlich in einer Ansible Rolle erstellt. Als Unternehmen, das von den Vorteilen von Open Source \u00fcberzeugt ist, stellen wir das unter folgendem Link als Git-Repository bereit (<a href=\"https:\/\/gitlab.com\/cloudandheat\/docker-2-lxc\">https:\/\/gitlab.com\/cloudandheat\/docker-2-lxc<\/a>).<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c6b9c21 e-flex e-con-boxed e-con e-parent\" data-id=\"c6b9c21\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ee8d60f elementor-widget elementor-widget-spacer\" data-id=\"ee8d60f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3ac5504 elementor-widget elementor-widget-heading\" data-id=\"3ac5504\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Fazit<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ce190ae elementor-widget elementor-widget-text-editor\" data-id=\"ce190ae\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Die Nutzung von OCI-Images als LXC-Container er\u00f6ffnet sich eine weitere M\u00f6glichkeit, Anwendungsvirtualisierung mit Proxmox VE zu kombinieren. Durch die Wiederverwendung standardisierter Container-Workflows lassen sich bestehende Images dabei effizient integrieren. Zwar erfordert die manuelle Konfiguration etwas technisches Verst\u00e4ndnis, doch bietet sie zugleich Kontrolle und Anpassbarkeit als Vorteile.\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-536124d e-flex e-con-boxed e-con e-parent\" data-id=\"536124d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>This blog post shows how OCI-compliant container images can be used directly as LXC containers in Proxmox Virtual Environment. In particular, the porting of the containers and operation via Systemd are discussed.<\/p>","protected":false},"author":6,"featured_media":15652,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_relevanssi_hide_post":"","_relevanssi_hide_content":"","_relevanssi_pin_for_all":"","_relevanssi_pin_keywords":"","_relevanssi_unpin_keywords":"","_relevanssi_related_keywords":"","_relevanssi_related_include_ids":"","_relevanssi_related_exclude_ids":"","_relevanssi_related_no_append":"","_relevanssi_related_not_related":"","_relevanssi_related_posts":"12149,5203,13634,5322,10940,15466","_relevanssi_noindex_reason":"","inline_featured_image":false,"footnotes":""},"categories":[1,111,105],"tags":[],"class_list":["post-15774","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-iaas","category-onpremise","category-proxmox"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Nutzung von Open Container Initiative (OCI) Container Images als Linux Containern (LXC) in Proxmox VE &#8211; Cloud &amp; Heat<\/title>\n<meta name=\"description\" content=\"Cloud&amp;Heat | Blog | Nutzung von Open Container Initiative (OCI) Container Images als Linux Containern (LXC) in Proxmox VE\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.cloudandheat.com\/en\/use-of-open-container-initiative-oci-container-images-as-linux-container-lxc-in-proxmox-ve\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Nutzung von Open Container Initiative (OCI) Container Images als Linux Containern (LXC) in Proxmox VE &#8211; Cloud &amp; Heat\" \/>\n<meta property=\"og:description\" content=\"Cloud&amp;Heat | Blog | Nutzung von Open Container Initiative (OCI) Container Images als Linux Containern (LXC) in Proxmox VE\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.cloudandheat.com\/en\/use-of-open-container-initiative-oci-container-images-as-linux-container-lxc-in-proxmox-ve\/\" \/>\n<meta property=\"og:site_name\" content=\"Cloud &amp; Heat\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/CloudandHeat\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-24T09:40:24+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-27T09:57:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.cloudandheat.com\/wp-content\/uploads\/2025\/10\/2025-Cloud-and-Heat-Proxmox-OCI-Images-LXC-Header-3.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2292\" \/>\n\t<meta property=\"og:image:height\" content=\"1313\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Sarah G\u00fcnther\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@cloudandheat\" \/>\n<meta name=\"twitter:site\" content=\"@cloudandheat\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sarah G\u00fcnther\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"14 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.cloudandheat.com\/nutzung-von-open-container-initiative-oci-container-images-als-linux-containern-lxc-in-proxmox-ve\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.cloudandheat.com\/nutzung-von-open-container-initiative-oci-container-images-als-linux-containern-lxc-in-proxmox-ve\/\"},\"author\":{\"name\":\"Sarah G\u00fcnther\",\"@id\":\"https:\/\/www.cloudandheat.com\/#\/schema\/person\/9d8e9e381c26ef3fdd6ce0de09e486a4\"},\"headline\":\"Nutzung von Open Container Initiative (OCI) Container Images als Linux Containern (LXC) in Proxmox VE\",\"datePublished\":\"2025-10-24T09:40:24+00:00\",\"dateModified\":\"2025-10-27T09:57:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.cloudandheat.com\/nutzung-von-open-container-initiative-oci-container-images-als-linux-containern-lxc-in-proxmox-ve\/\"},\"wordCount\":1881,\"publisher\":{\"@id\":\"https:\/\/www.cloudandheat.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.cloudandheat.com\/nutzung-von-open-container-initiative-oci-container-images-als-linux-containern-lxc-in-proxmox-ve\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.cloudandheat.com\/wp-content\/uploads\/2025\/10\/2025-Cloud-and-Heat-Proxmox-OCI-Images-LXC-Header-3.png\",\"articleSection\":[\"IaaS\",\"OnPremise\",\"Proxmox\"],\"inLanguage\":\"en-GB\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.cloudandheat.com\/nutzung-von-open-container-initiative-oci-container-images-als-linux-containern-lxc-in-proxmox-ve\/\",\"url\":\"https:\/\/www.cloudandheat.com\/nutzung-von-open-container-initiative-oci-container-images-als-linux-containern-lxc-in-proxmox-ve\/\",\"name\":\"Nutzung von Open Container Initiative (OCI) Container Images als Linux Containern (LXC) in Proxmox VE &#8211; Cloud &amp; Heat\",\"isPartOf\":{\"@id\":\"https:\/\/www.cloudandheat.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.cloudandheat.com\/nutzung-von-open-container-initiative-oci-container-images-als-linux-containern-lxc-in-proxmox-ve\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.cloudandheat.com\/nutzung-von-open-container-initiative-oci-container-images-als-linux-containern-lxc-in-proxmox-ve\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.cloudandheat.com\/wp-content\/uploads\/2025\/10\/2025-Cloud-and-Heat-Proxmox-OCI-Images-LXC-Header-3.png\",\"datePublished\":\"2025-10-24T09:40:24+00:00\",\"dateModified\":\"2025-10-27T09:57:25+00:00\",\"description\":\"Cloud&Heat | Blog | Nutzung von Open Container Initiative (OCI) Container Images als Linux Containern (LXC) in Proxmox VE\",\"breadcrumb\":{\"@id\":\"https:\/\/www.cloudandheat.com\/nutzung-von-open-container-initiative-oci-container-images-als-linux-containern-lxc-in-proxmox-ve\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.cloudandheat.com\/nutzung-von-open-container-initiative-oci-container-images-als-linux-containern-lxc-in-proxmox-ve\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/www.cloudandheat.com\/nutzung-von-open-container-initiative-oci-container-images-als-linux-containern-lxc-in-proxmox-ve\/#primaryimage\",\"url\":\"https:\/\/www.cloudandheat.com\/wp-content\/uploads\/2025\/10\/2025-Cloud-and-Heat-Proxmox-OCI-Images-LXC-Header-3.png\",\"contentUrl\":\"https:\/\/www.cloudandheat.com\/wp-content\/uploads\/2025\/10\/2025-Cloud-and-Heat-Proxmox-OCI-Images-LXC-Header-3.png\",\"width\":2292,\"height\":1313},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.cloudandheat.com\/nutzung-von-open-container-initiative-oci-container-images-als-linux-containern-lxc-in-proxmox-ve\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\/\/www.cloudandheat.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Nutzung von Open Container Initiative (OCI) Container Images als Linux Containern (LXC) in Proxmox VE\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.cloudandheat.com\/#website\",\"url\":\"https:\/\/www.cloudandheat.com\/\",\"name\":\"Cloud & Heat Technolgies GmbH\",\"description\":\"Cloud-Service- und Cloud-Technologie-Provider\",\"publisher\":{\"@id\":\"https:\/\/www.cloudandheat.com\/#organization\"},\"alternateName\":\"Cloud and Heat Technologies GmbH\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.cloudandheat.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.cloudandheat.com\/#organization\",\"name\":\"Cloud&Heat Technologies GmbH\",\"url\":\"https:\/\/www.cloudandheat.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/www.cloudandheat.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.cloudandheat.com\/wp-content\/uploads\/2022\/08\/logo.svg\",\"contentUrl\":\"https:\/\/www.cloudandheat.com\/wp-content\/uploads\/2022\/08\/logo.svg\",\"width\":907,\"height\":1782,\"caption\":\"Cloud&Heat Technologies GmbH\"},\"image\":{\"@id\":\"https:\/\/www.cloudandheat.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/CloudandHeat\",\"https:\/\/x.com\/cloudandheat\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.cloudandheat.com\/#\/schema\/person\/9d8e9e381c26ef3fdd6ce0de09e486a4\",\"name\":\"Sarah G\u00fcnther\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/www.cloudandheat.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d67ec01cd9ca6c373f3ee8f6c10643ab8a25bae512dfa346ec40d4714ea81132?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d67ec01cd9ca6c373f3ee8f6c10643ab8a25bae512dfa346ec40d4714ea81132?s=96&d=mm&r=g\",\"caption\":\"Sarah G\u00fcnther\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Use of Open Container Initiative (OCI) container images as Linux Containers (LXC) in Proxmox VE - Cloud &amp; Heat","description":"Cloud&amp;Heat | Blog | Use of Open Container Initiative (OCI) container images as Linux Containers (LXC) in Proxmox VE","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.cloudandheat.com\/en\/use-of-open-container-initiative-oci-container-images-as-linux-container-lxc-in-proxmox-ve\/","og_locale":"en_GB","og_type":"article","og_title":"Nutzung von Open Container Initiative (OCI) Container Images als Linux Containern (LXC) in Proxmox VE &#8211; Cloud &amp; Heat","og_description":"Cloud&Heat | Blog | Nutzung von Open Container Initiative (OCI) Container Images als Linux Containern (LXC) in Proxmox VE","og_url":"https:\/\/www.cloudandheat.com\/en\/use-of-open-container-initiative-oci-container-images-as-linux-container-lxc-in-proxmox-ve\/","og_site_name":"Cloud &amp; Heat","article_publisher":"https:\/\/www.facebook.com\/CloudandHeat","article_published_time":"2025-10-24T09:40:24+00:00","article_modified_time":"2025-10-27T09:57:25+00:00","og_image":[{"width":2292,"height":1313,"url":"https:\/\/www.cloudandheat.com\/wp-content\/uploads\/2025\/10\/2025-Cloud-and-Heat-Proxmox-OCI-Images-LXC-Header-3.png","type":"image\/png"}],"author":"Sarah G\u00fcnther","twitter_card":"summary_large_image","twitter_creator":"@cloudandheat","twitter_site":"@cloudandheat","twitter_misc":{"Written by":"Sarah G\u00fcnther","Estimated reading time":"14 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.cloudandheat.com\/nutzung-von-open-container-initiative-oci-container-images-als-linux-containern-lxc-in-proxmox-ve\/#article","isPartOf":{"@id":"https:\/\/www.cloudandheat.com\/nutzung-von-open-container-initiative-oci-container-images-als-linux-containern-lxc-in-proxmox-ve\/"},"author":{"name":"Sarah G\u00fcnther","@id":"https:\/\/www.cloudandheat.com\/#\/schema\/person\/9d8e9e381c26ef3fdd6ce0de09e486a4"},"headline":"Nutzung von Open Container Initiative (OCI) Container Images als Linux Containern (LXC) in Proxmox VE","datePublished":"2025-10-24T09:40:24+00:00","dateModified":"2025-10-27T09:57:25+00:00","mainEntityOfPage":{"@id":"https:\/\/www.cloudandheat.com\/nutzung-von-open-container-initiative-oci-container-images-als-linux-containern-lxc-in-proxmox-ve\/"},"wordCount":1881,"publisher":{"@id":"https:\/\/www.cloudandheat.com\/#organization"},"image":{"@id":"https:\/\/www.cloudandheat.com\/nutzung-von-open-container-initiative-oci-container-images-als-linux-containern-lxc-in-proxmox-ve\/#primaryimage"},"thumbnailUrl":"https:\/\/www.cloudandheat.com\/wp-content\/uploads\/2025\/10\/2025-Cloud-and-Heat-Proxmox-OCI-Images-LXC-Header-3.png","articleSection":["IaaS","OnPremise","Proxmox"],"inLanguage":"en-GB"},{"@type":"WebPage","@id":"https:\/\/www.cloudandheat.com\/nutzung-von-open-container-initiative-oci-container-images-als-linux-containern-lxc-in-proxmox-ve\/","url":"https:\/\/www.cloudandheat.com\/nutzung-von-open-container-initiative-oci-container-images-als-linux-containern-lxc-in-proxmox-ve\/","name":"Use of Open Container Initiative (OCI) container images as Linux Containers (LXC) in Proxmox VE - Cloud &amp; Heat","isPartOf":{"@id":"https:\/\/www.cloudandheat.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.cloudandheat.com\/nutzung-von-open-container-initiative-oci-container-images-als-linux-containern-lxc-in-proxmox-ve\/#primaryimage"},"image":{"@id":"https:\/\/www.cloudandheat.com\/nutzung-von-open-container-initiative-oci-container-images-als-linux-containern-lxc-in-proxmox-ve\/#primaryimage"},"thumbnailUrl":"https:\/\/www.cloudandheat.com\/wp-content\/uploads\/2025\/10\/2025-Cloud-and-Heat-Proxmox-OCI-Images-LXC-Header-3.png","datePublished":"2025-10-24T09:40:24+00:00","dateModified":"2025-10-27T09:57:25+00:00","description":"Cloud&amp;Heat | Blog | Use of Open Container Initiative (OCI) container images as Linux Containers (LXC) in Proxmox VE","breadcrumb":{"@id":"https:\/\/www.cloudandheat.com\/nutzung-von-open-container-initiative-oci-container-images-als-linux-containern-lxc-in-proxmox-ve\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.cloudandheat.com\/nutzung-von-open-container-initiative-oci-container-images-als-linux-containern-lxc-in-proxmox-ve\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.cloudandheat.com\/nutzung-von-open-container-initiative-oci-container-images-als-linux-containern-lxc-in-proxmox-ve\/#primaryimage","url":"https:\/\/www.cloudandheat.com\/wp-content\/uploads\/2025\/10\/2025-Cloud-and-Heat-Proxmox-OCI-Images-LXC-Header-3.png","contentUrl":"https:\/\/www.cloudandheat.com\/wp-content\/uploads\/2025\/10\/2025-Cloud-and-Heat-Proxmox-OCI-Images-LXC-Header-3.png","width":2292,"height":1313},{"@type":"BreadcrumbList","@id":"https:\/\/www.cloudandheat.com\/nutzung-von-open-container-initiative-oci-container-images-als-linux-containern-lxc-in-proxmox-ve\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/www.cloudandheat.com\/"},{"@type":"ListItem","position":2,"name":"Nutzung von Open Container Initiative (OCI) Container Images als Linux Containern (LXC) in Proxmox VE"}]},{"@type":"WebSite","@id":"https:\/\/www.cloudandheat.com\/#website","url":"https:\/\/www.cloudandheat.com\/","name":"Cloud &amp; Heat Technolgies GmbH","description":"Cloud service and cloud technology providers","publisher":{"@id":"https:\/\/www.cloudandheat.com\/#organization"},"alternateName":"Cloud and Heat Technologies GmbH","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.cloudandheat.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/www.cloudandheat.com\/#organization","name":"Cloud&amp;Heat Technologies GmbH","url":"https:\/\/www.cloudandheat.com\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.cloudandheat.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.cloudandheat.com\/wp-content\/uploads\/2022\/08\/logo.svg","contentUrl":"https:\/\/www.cloudandheat.com\/wp-content\/uploads\/2022\/08\/logo.svg","width":907,"height":1782,"caption":"Cloud&Heat Technologies GmbH"},"image":{"@id":"https:\/\/www.cloudandheat.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/CloudandHeat","https:\/\/x.com\/cloudandheat"]},{"@type":"Person","@id":"https:\/\/www.cloudandheat.com\/#\/schema\/person\/9d8e9e381c26ef3fdd6ce0de09e486a4","name":"Sarah G\u00fcnther","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.cloudandheat.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d67ec01cd9ca6c373f3ee8f6c10643ab8a25bae512dfa346ec40d4714ea81132?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d67ec01cd9ca6c373f3ee8f6c10643ab8a25bae512dfa346ec40d4714ea81132?s=96&d=mm&r=g","caption":"Sarah G\u00fcnther"}}]}},"_links":{"self":[{"href":"https:\/\/www.cloudandheat.com\/en\/wp-json\/wp\/v2\/posts\/15774","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cloudandheat.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.cloudandheat.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.cloudandheat.com\/en\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cloudandheat.com\/en\/wp-json\/wp\/v2\/comments?post=15774"}],"version-history":[{"count":3,"href":"https:\/\/www.cloudandheat.com\/en\/wp-json\/wp\/v2\/posts\/15774\/revisions"}],"predecessor-version":[{"id":15815,"href":"https:\/\/www.cloudandheat.com\/en\/wp-json\/wp\/v2\/posts\/15774\/revisions\/15815"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.cloudandheat.com\/en\/wp-json\/wp\/v2\/media\/15652"}],"wp:attachment":[{"href":"https:\/\/www.cloudandheat.com\/en\/wp-json\/wp\/v2\/media?parent=15774"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.cloudandheat.com\/en\/wp-json\/wp\/v2\/categories?post=15774"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.cloudandheat.com\/en\/wp-json\/wp\/v2\/tags?post=15774"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}