Erstellt: 2025-07-08
Vor Beginn in der Node (pve1) folgendes eingeben:
pveam update
Somit wurden die verfügbaren Templates aktualisiert.
In diesem Guide installiere ich Alpine Linux 3.22 als LXC-Container auf Proxmox. Ziel ist es, eine saubere, funktionsfähige Basisinstanz zu schaffen, die ich bei Bedarf jederzeit klonen kann. Nach dem Klonen passe ich nur noch die IP-Adresse an – und zack, fertig ist die nächste Instanz. Das spart nicht nur Zeit, sondern auch Nerven, vor allem bei mehreren parallelen Projekten. Aktuell wird von Proxmox allerdings nur die Version 3.18 von Alpine als Template angeboten. Kein Problem: Ich nehme das als Ausgangspunkt und passe das System anschließend manuell auf Version 3.22 an – ganz nach dem Motto: Wenn das Repository nicht zu mir kommt, kommt die Shell eben zum Repository. So habe ich am Ende ein aktuelles, leichtgewichtiges Alpine-Setup, das genau meinen Anforderungen entspricht – und sich im Handumdrehen vervielfältigen lässt.
Zuerst gehe ich auf die Proxmox-Weboberfläche, dann auf meinem Note (pve1) und auf „local (pve1)“, auf „Container-Templates“ und suche mir das gewünschte „Template“ aus. In diesem Beispiel ist das „alpine 3.18“ und dann auf „Herunterladen“. Wenn fertig, „Erstelle CT“ (rechts oben).
Allgemein:
- Hostname: Alpine
- Kennwort angeben
Template: Storage: local und Template alpine 3.18
Disks: Speicherplatz wählen, Disk-Größe anpassen (1GB sind für den Anfang ausreichend) und „Vorwärts“.
CPU: Cores auf 1 ist vorerst ausreichend. „Vorwärts“ klicken.
Speicher: Ram 512MB und Swap 128MB (als Testmaschine vorerst für mich ausreichend). „Vorwärts“ klicken.
Netzwerk *1:
- VLAN-Tag: Wenn eingerichtet – angeben
- IPv4: DHCP (ich stelle später auf eine statische IP-Adresse, wenn ich es benötige)
- IPv6: Keine Änderung
- „Vorwärts“ klicken.
DNS: Keine Änderung, es sei denn, man weiß, was man tut :-). „Vorwärts“ klicken.
Bestätigung: „Abschließen“ klicken.
Jetzt den eben erstellten Container selektieren oben rechts auf „Start“. Der Container wird gestartet. In der „>_ Konsole“, kann ich sehen, wie schnell der Login erscheint. Diesen tätige ich mit root und das erstellte Passwort.
Grundinstallationen:
Diese Pakete installiere ich jetzt, damit ich später nicht jedes Mal daran denken muss. Anschließend nutze ich diesen Container immer wieder als Vorlage für meine Projekte, wobei die benötigten Pakete bereits vorinstalliert sind.
apk update && apk upgrade
apk add nano mc curl wget
apk add --no-cache --upgrade bash
Nano zum Haupteditor machen:
Sorry – aber ich kann mit „vim“ nichts anfangen. Also befördere ich nano zum Editor meines Vertrauens:
nano /etc/profile.d/default_editor.sh
Folgendes eintragen:
EDITOR=nano
export EDITOR
Strg-x, y, Enter
reboot
Benutzer alpine hinzufügen:
adduser -g -h alpine
Benutzerpasswort eingeben und bestätigen. Zum Benutzer wechseln:
su alpine
Um wieder zum Root-User zu kommen:
su
Um ins obere Hauptverzeichnis zu kommen:
cd
SSH installieren (wenn benötigt):
Verfügbare Pakete suchen:
apk search openssh
Openssh installieren:
apk add openssh
Auto-Start nach Boot:
rc-update add sshd
Service Start:
service sshd start
Konfigurationsdatei (nur zur Info):
nano /etc/ssh/sshd_config
Der zuvor erstellte Benutzer kann eine SSH-Verbindung herstellen. Der Root-Benutzer hingegen ist aus Sicherheitsgründen ohne zusätzliche Konfiguration nicht dazu in der Lage. Nach der Anmeldung ist es jedoch möglich, mit dem Befehl su zum Root-Benutzer zu wechseln.
Zeitzone umstellen:
apk add tzdata
ln -s /usr/share/zoneinfo/Europe/Berlin /etc/localtime
Update auf 8.22:
apk update && apk upgrade
nano /etc/apk/repositories
Versionsnummern anpassen:
https://dl-cdn.alpinelinux.org/alpine/v3.22/main
https://dl-cdn.alpinelinux.org/alpine/v3.22/community
Strg-x, y, Enter
apk update
apk upgrade --available && sync
reboot
Kontrolle:
cat /etc/*release
Fertig. Mein Alpine steht nun für meine Projekte bereit.
Am Ende beende ich dieses LXC und konvertiere es in ein Template. Dadurch ist es vor Veränderungen geschützt, und ich habe stets die gleiche Ausgangsbasis für meine Projekte. Benötige ich anschließend einen Alpine-Container, verwende ich dieses Template und erstelle daraus einen vollwertigen Klon.