In dieser Anleitung installieren wir einen Docker-Host als Container-Plattform unter der Virtualisierungsumgebung Proxmox-VE 8.0.3. Kombiniert sind diese beiden Softwarelösungen ideal dafür geeignet, schnell und zuverlässig Anwendungen im Docker-Container oder als virtuelle Maschine bereitzustellen. Wir schaffen in dieser Anleitung eine leistungsstarke Hybridumgebung, um das Maximum aus einem Server mit Proxmox herauszuholen.
Wir verwenden in dieser Anleitung für die Installation von Docker unter Proxmox die neue Distribution Linux Debian 12 (Bookworm). Verwendet wird dabei ein Linux-Container (LXC) auf den wir die Docker-Software installieren werden, um anschließend einen zuverlässigen Docker-Host zu implementieren. Alles, was wir für die Schritt-für-Schritt-Anleitung benötigen, ist ein Server-Hostsystem mit installiertem Hypervisor Proxmox-VE.
Empfehlung für Beiträge, die für das hier aufgeführte Tutorial hilfreich sein können:
Proxmox-VE Hypervisor: Eine Anleitung für die Installation und Erstkonfiguration.
Wichtiger Hinweis: Docker machen, sofern die Container-Software auf einen unprivilegierten LXC-Container installiert wird, seit Linux Debian-11 möglicherweise Probleme. Besuche diesen Beitrag von mir, um mehr über die Lösung des Problems zu erfahren. Aus diesem Grund muss der Docker-Host-Container, wie in diesem Tutorial ersichtlich, auf einen unprivilegierten Container installiert werden. Folge den Screenshots- und Installationshinweisen, damit dir kein Fehler während der Installation von Docker unter Proxmox unterläuft.
Inhaltsverzeichnis: Docker für eine Container-Infrastruktur unter Proxmox installieren (Anleitung)
Vorbereitungen: Container Template für Linux Debian 12 herunterladen:
Rufe über deinen Browser die IP-Adresse deines Proxmox-Servers auf und verwende deine Logindaten, um dich als Administrator am Dashboard (GUI) von Proxmox-VE anzumelden. Navigiere in der linken Navigation auf deinen Storage (local) > Container Templates > Templates und gebe in der Suche die Bezeichnung: „Debian“ ein.
Beginne jetzt mit dem Download von dem Debian-12-Standard Template (Bookworm) vom Typ „LXC“. Mithilfe des neuen LXC-Templates werden wir den Docker-Server unter Proxmox installieren. Sobald das Container-Template erfolgreich heruntergeladen wurde, sollte sich die TGZ-Datei unter den Container-Templates zum Auswählen befinden.
Mithilfe dieser Vorlage werden wir jetzt einen Linux-Container (LXC) für unseren Docker-Host installieren. Die im Artikel hinterlegten Screenshots helfen dir bei der Einrichtung von dem Linux-Container für Docker.
*Hinweis: Diese Anleitung wurde am 03.09.2023 für Debian 12 aktualisiert. Deshalb bitte nicht von den Screenshots und den Versionsunterschieden beeinflussen. Die Installation wurde dementsprechend angepasst und ausgiebig geprüft.
Schritt 1: Einen Linux-Container mit dem Debian 12 Template für den Docker-Server unter Proxmox erstellen
Navigiere oberhalb der Weboberfläche von Proxmox auf die blaue Schaltfläche „Erstelle CT“, um einen neuen Container für den Docker-Server mit dem Debian-Template zu erstellen.
Erstelle einen neuen, unprivilegierten Container (der Haken muss gesetzt sein) und vergebe ein Kennwort. Wähle eine beliebige Container-ID oder belasse es bei der freien ID, die Proxmox dir bereits für die Implementierung vorschlägt.
Wähle in dem Abschnitt „Template“ während der Container-Erstellung nun das Debian-11 Template für den neuen LXC-Container aus. Klicke auf die Schaltfläche „Vorwärts“, um zum nächsten Bereich für die Speicherkonfiguration „Root-Disk“ zu gelangen.
Konfiguriere eine beliebige Disk-Größe (angegeben in GiB), die über genügend Speicherplatz für zukünftige Projekte auf deinen Docker-Server verfügt. Das hängt von den persönlichen Plänen und den zu installierenden Anwendungen auf deinem Docker-Host ab.
Falls du einen Netzwerkspeicher eingebunden hast, ist es auch möglich, den Speicherplatz nicht lokal anzulegen, um beispielsweise Clustering zu ermöglichen. Planst du keine Verwendung eines Clusters, kannst du einfach den lokalen Storage verwenden. Klicke auf Vorwärts, um zu den CPU-Konfigurationen zu gelangen.
Bei der Anzahl der Cores kann eine beliebige Anzahl von Kernen ausgewählt werden, die Docker später deinen Containern zur Verfügung stellen kann. Hier gibt es keinen festen Richtwert, da die benötigte Leistung vom individuellen Einsatzzweck abhängt. Zwei Kerne dürfte jedoch für die meisten Projekte vorerst ausreichend sein. Klicke auf Vorwärts, um zu den Speicherkonfigurationen zu gelangen.
Je nach Einsatzzweck kannst du dem Docker-Server unter Proxmox eine individuelle Größe an Arbeitsspeicher zuweisen. In meinem Beispiel verwende ich 4 GB, da es für die meisten User völlig ausreichend sein dürfte. Klicke auf den „Vorwärts-Button“, um zu den Netzwerkkonfigurationen zu gelangen.
Innerhalb der Netzwerkeinstellungen kannst du deinen Container bereits eine IP-Adresse und ein Gateway zuordnen. In meinem Beispiel beziehen wir die IP-Adresse für unseren Docker-Server unter Proxmox von einem DHCP-Server. Ich lege die IP-Adresse für den LXC-Container über den Router (DHCP-Server) fest und nicht hier. Klicke auf die Schaltfläche „Vorwärts“, um zum nächsten Schritt zu gelangen.
Weil mein Server von einem DHCP-Server bedient wird, benötige ich keine zusätzlichen DNS-Einstellungen, diese Informationen werden dann automatisch übermittelt. Trage alternativ die Adresse deines DNS-Servers ein.
Die Erstellung eines Containers ist jetzt abgeschlossen. Navigiere mit dem Mauszeiger für die Bestätigung der Konfiguration auf die Abschließen-Schaltfläche. Fahre mit der Installation im nächsten Abschnitt fort, um die wichtigsten Features für den Linux-Container zu aktivieren, die für den Betrieb von Docker unter Proxmox erforderlich sind.
Schritt 2: Notwendige Features für unseren LXC unter Proxmox aktivieren
Klicke in der Server-Ansicht auf den soeben erstellten Docker-Server (Linux Container) und öffne die Optionen > Features (Doppelklick). Setze einen Haken für die Aktivierung der beiden notwendigen Features unter Proxmox: „Nesting“ und „keyctl“ (siehe Screenshot). Bestätige die Auswahl und starte jetzt deinen Docker-Container.
Schritt 3: SSH aktivieren für die Verbindung von einem Client zum Docker-Server
Damit wir uns mittels SSH mit unserem Container verbinden können, rufen wir die Konsole im Proxmox-Dashboard auf und melden uns als Root-Benutzer mit dem Passwort an, welches wir bei der Erstellung unseres Linux-Containers vergeben haben. Gib in die Konsole den folgenden Befehl ein, um den SSH-Zugriff als Admin mit Berechtigungen (root) zu ermöglichen:
nano /etc/ssh/sshd_config
Suche in der Datei nach dem Abschnitt „Authentication“ und entferne die Rauten (Kommentarfunktion) hinter den drei angegeben Zeilen und erweitere die Zeile „PerminRootLogin“ mit einem „prohibit-password“ oder erlaube alternativ einen Rootzugriff (nicht für Anfänger empfohlen), wie auf der Beispielgrafik ersichtlich.
Speichere die Änderungen ab (STRG + S) und verlasse den Nano-Editor wieder mit (STRG + X). Damit die Änderungen wirksam werden, muss der SSH-Service jetzt mit dem folgenden Befehl neu gestartet werden:
systemctl restart ssh.service
Falls dir deine IP-Adresse noch nicht bekannt ist, weil der Container (LXC) seine IP-Adresse von einem DHCP-Server bezogen hat, kannst du den folgenden Befehl verwenden, um dir die IP-Adresse über die Proxmox-Konsole ausgeben zu lassen:
ip a
Notiere dir jetzt die IP-Adresse. Der Container für Docker ist jetzt über SSH (Secure-Shell) von einem beliebigen SSH-Client aus erreichbar. Die Weboberfläche von Proxmox ist jetzt nicht mehr notwendig und kann geschlossen werden. Verwende einen SSH-Client oder alternativ ein Linux-Terminal/PowerShell und verbinde dich mit deinem Docker-Server.
Schritt 4: Docker im Container unter Proxmox (LXC) installieren
Aktualisiere zunächst die Paketquellen deines neuen Linux-Containers mit Debian 11. Verwende dafür den folgenden Befehl:
apt update && apt upgrade -y
Wir können Docker direkt aus den offiziellen Paketquellen installieren. Das erfolgt mit diesem Befehl:
apt install docker.io
Während der Installation müssen einige Schritte bei Aufforderung mit „Y“ bestätigt werden.
Überprüfe, mit diesen beiden Befehlen, die aktuell installierte Docker-Version und validiere, ob die Docker-Application-Container-Engine aktiv auf deinem Linux-System ausgeführt wird:
docker version
service docker status
Wenn die Installation von Docker im LXC unter Proxmox erfolgreich durchlaufen ist, sollte das Terminal nun den Status: active (running) ausgeben (siehe Screenshot).
Damit Docker nach einem Systemabsturz oder Neustart wieder automatischen gestartet wird, kannst du den folgenden Befehl verwenden:
systemctl enable docker
Falls der Docker Dienst bisher nicht ausgeführt wird, kannst du den folgenden Befehl zum Starten verwenden:
systemctl start docker
Docker-Installation im Linux-Container unter Proxmox-VE abgeschlossen
Herzlichen Glückwunsch! Jetzt hast du einen eigenen Server mit Docker unter Proxmox installiert und die Voraussetzungen für eine Container-Infrastruktur geschaffen. Verifiziere deine neue Docker-Umgebung am besten mit dem Test-Container-Image „Hello-World“.
Verifiziere deine Docker-Engine (Test):
docker run hello-world
Um auch anderen Benutzern die Steuerung von Kommandos für Docker zu ermöglichen, kannst du einen Linux-User der Docker-Gruppe mit dem folgenden Befehl hinzufügen:
usermod -aG docker Username
Jetzt wo du einen Docker-Server auf Proxmox installierst hast, möchtest du vielleicht noch einen Schritt weitergehen und die freie Software Portainer in einem Container installieren. Portainer vereinfacht den Umgang mit Docker über eine Weboberfläche. Besuche diesen Beitrag und installiere Portainer für die einfache Verwaltung deiner Container-Infrastruktur.