Diese Doku beschreibt, wie ein bestehender Incus-Container CTNAME in ein wiederverwendbares Image umgewandelt und auf einen anderen Server übertragen wird. Aus diesem Image kann auf dem Zielsystem wieder ein Container erstellt werden.
Es werden zwei Varianten gezeigt:
- Variante A (empfohlen): Container → Incus-Image → Export → Import → neuer Container
- Variante B: Snapshot → Export → Import → Wiederherstellung
Voraussetzungen
- Incus ist auf Quell- und Zielserver installiert und funktionsfähig.
- Du hast Root-Zugriff auf beide Server.
- Netzwerkverbindung zwischen den Servern (z. B. via
scpoderrsync).
Verwendete Platzhalter:
CTNAME– Name des Containers auf dem QuellserverOTHERHOST– Hostname oder IP des ZielserversCTIMAGE– Alias des zu erstellenden Images (frei wählbar)
Variante A (empfohlen): Container als Incus-Image veröffentlichen
Diese Variante erzeugt ein richtiges Incus-Image, das mehrfach verwendet werden kann (ähnlich wie ein Template).
1. Container ggf. stoppen
incus stop CTNAME
(Optional, aber saubere Images erhält man, wenn der Container gestoppt ist.)
2. Image aus Container erstellen
incus publish CTNAME --alias CTIMAGE
CTIMAGEist ein frei wählbarer Alias, z. B.myapp-v1,ctname-img, etc.- Das Image liegt jetzt im Incus-Image-Store des Quellservers.
3. Image auf dem Quellserver nach /root/ exportieren
incus image export CTIMAGE /root/CTNAME-export
Es entstehen Dateien wie z. B.:
/root/CTNAME-export.tar.xz
/root/CTNAME-export.squashfs
4. Image-Dateien auf den Zielserver kopieren
Auf dem Quellserver:
scp /root/CTNAME-export.* root@OTHERHOST:/root/
- Ersetze
OTHERHOSTdurch Hostname oder IP des Zielservers.
5. Image auf dem Zielserver importieren
Auf dem Zielserver:
cd /root/
incus image import CTNAME-export.tar.xz CTNAME-export.squashfs --alias CTIMAGE
- Jetzt steht das Image
CTIMAGEim Image-Store des Zielservers zur Verfügung.
6. Neuen Container aus dem Image erstellen und starten
incus init CTIMAGE CTNAME
incus start CTNAME
CTNAMEkann derselbe Name sein wie am Quellserver oder ein neuer Name.
Variante B: Snapshot exportieren und importieren
Diese Methode exportiert einen Snapshot als Tarball. Das Ergebnis ist kein "klassisches" Image, aber ein voll wiederherstellbarer Containerzustand.
1. Snapshot erstellen
incus snapshot CTNAME snap1
snap1ist der Name des Snapshots (frei wählbar).
2. Snapshot exportieren
incus export CTNAME/snap1 /root/CTNAME-snap
Es entsteht z. B.:
/root/CTNAME-snap.tar.gz
3. Snapshot-Export auf Zielserver kopieren
Auf dem Quellserver:
scp /root/CTNAME-snap.tar.gz root@OTHERHOST:/root/
4. Snapshot auf dem Zielserver importieren
Auf dem Zielserver:
cd /root/
incus import CTNAME-snap.tar.gz CTNAME
- Dadurch wird auf dem Zielserver ein Container
CTNAMEangelegt, der dem Snapshot entspricht.
Hinweise & Best Practices
Netzwerkkonfiguration
- Nach dem Import kann der Container eine neue IP-Adresse und ggf. eine neue MAC-Adresse erhalten (abhängig vom Profil und der Netzkonfiguration).
- Prüfe z. B. in
/etc/network/, Systemd-Netzwerkkonfiguration oder im Incus-Profil, ob feste Adressen oder spezielle Regeln existieren.
Storage & Pfade
- Die hier gezeigten Befehle gehen davon aus, dass der Standard-Storage-Pool verwendet wird.
- Wenn du auf dem Zielserver andere Storage-Pools oder spezielle Profile verwendest, passe ggf.
incus init/incus launchentsprechend an.
Mehrfachverwendung des Images
- Variante A (Image
CTIMAGE) eignet sich gut, wenn du mehrere Container mit identischer Basis benötigst. - Du kannst dann beliebig viele Container damit erstellen:
incus launch CTIMAGE CTNAME2
incus launch CTIMAGE CTNAME3
Aufräumen
- Nicht mehr benötigte Exportdateien auf den Servern löschen:
rm /root/CTNAME-export.*
rm /root/CTNAME-snap.tar.gz
- Nicht mehr benötigte Images in Incus löschen:
incus image delete CTIMAGE