Nein, ich glaube, wir reden aneinander vorbei...
Meine Annahme war, dass Du von einem normalen openHAB, welches direkt auf einem Raspberry Pi4 installiert ist, in einen Docker Container umziehen willst.
Dazu führst Du auf dem Pi den Befehl
aus. Der Befehl fragt, ob Du sicher bist und erzeugt nach der Bestätigung eine zip-Datei. Dieses Archiv liegt anschließend im Ordner $OPENHAB_USERDATA/backups/ und trägt im Namen Datum und Uhrzeit. Diese Datei kopierst Du z.B. auf Deinen Desktop PC.
Anschließend erstellst Du das Docker System und startest auf dem Docker System Portainer.
Danach erstellst Du über Portainer einen openHAB Container.
Dieser Container benötigt drei Volumes, conf, userdata und addons.
Gewöhnlich werden die drei Verzeichnisse bei einem mit Portainer verwalteten System auf dem Docker Host im Verzeichnis /portainer/Files/AppData/Config/<containername> liegen. Du prüfst nun vom Docker Host aus, wie der User und die Gruppe dort heißen, z.B. mittels
Code: Alles auswählen
ls -l /portainer/Files/AppData/Config/<containername>/conf/
Der Container muss zu dem Zeitpunkt schon mal gestartet worden sein, damit die Volumes mit den Ausgangsdaten gefüllt sind.
Spätestens jetzt fährst Du den openHAB Container herunter (bzw. Du stoppst ihn)
Nun entpackst Du das zuvor gesicherte Archiv mit dem Backup des alten Systems. Direkt in dem Archiv befinden sich zwei Ordner, conf und userdata.
Den Inhalt des Ordners conf kopierst Du nach /portainer/Files/AppData/Config/<containername>/conf/, den Inhalt des Ordners userdata kopierst Du nach /portainer/Files/AppData/Config/<containername>/userdata. Anschließend korrigierst Du die Besitzverhältnisse mittels
Code: Alles auswählen
sudo chown -R openhab:openhab /portainer/Files/AppData/Config/<containername>/*
Wobei openhab:openhab mit dem zuvor ermittelten usernamen/Gruppennamen zu ersetzen ist. Sollten statt Klartext Namen nur Zahlen auftauchen, so gibst Du halt die Zahlen an, also z.B.
Code: Alles auswählen
sudo chown -R 12345:7890 /portainer/Files/AppData/Config/<containername>/*
(vergiss den Unsinn von oben... da hab ich was verwechselt...)
Die Besitzrechte korrekt zu setzen ist nicht weiter wild, aber essenziell für das Gelingen des Vorhabens.
Nachdem Du die Dateien kopiert und die Besitzrechte korrigiert hast, startest Du den Container und solltest nun all Deine Einstellungen im openHAB Docker Container vorfinden.
Ein, zwei Dinge noch am Rande: Zeitzone (für den Container) und Sprache müssen über den yaml Code gesetzt werden, der den Container beschreibt (ich hoffe mal, Du hast den Container in Portainer als Stack Template eingerichtet). Eventuell müssen diese Daten sogar doppelt gesetzt werden, für das GNU/Linux Image, auf dem der openHAB Container basiert, und für Java (Java_Extra_Args oder so ähnlich).
Der openHAB Container sollte unbedingt im Host-Netzwerkmode laufen, weil Avahi/ZeroConf sonst nicht funktioniert (das ist Teil der Autodiscovery). openHAB benötigt die Ports 8080, 8443 und 5007, für http, https und lsp. Diese Ports dürfen von anderen Containern nicht verwendet werden, zumindest nicht im host-Netz.
Wenn Du hingegen vom openHAB Docker Container ein Backup amchen willst, kopierst Du einfach den Inhalt des Pfades
/portainer/Files/AppData/Config/<containername>/* und speicherst ihn, wo auch immer. Wenn der Container dann mal nicht funktionieren sollte, schreibst Du einfach die zuvor gesicherten Daten wieder zurück.
Im Idealfall definierst Du für das Backup einen Cron-Job und sicherst die Daten extern, also z.B. auf einer Freigabe eines anderen Rechners (das könnte auch der Raspberry Pi 3 sein)