Um einen docker Container zu aktualisieren löscht man ihn und ladet den aktuellen container runter (recreate)
Wichtig ist das beim “ docker run“ command durch Volumes die configurations Dateien ausgelagert wurden um keine Daten zu verlieren.
Normalerweise muss kein Backup angelegt werden wenn die Daten sauber „ausgelagert“ wurden und der ursprüngliche „docker run“ command verwendet wird.
watchtower das auch in einem container läuft, überwacht und „recreated“ alle Dockercontainer (kann in kritischen Umgebungen risikoreich sein und mann kann auch angeben das es nur bestimmte container verwaltet)
Leider ist es nicht möglich mit einem Backup auf eine andere Domain umzuziehen
Wenn du zu einer neuen Domain wechselst, gelten die alten Chatverläufe und Räume als nicht mehr zugänglich, da die Domain Teil der Event-IDs ist, die die Nachrichten identifizieren.
1. Contaienr Update
Beim Update wird einfach per „recreate“ der container gelöscht und neu herunter geladen die Configuration bleibt erhalten und man benötigt kein Backup bis auf dem container „synapse-postgres“ da muss zuvor die datenbank aus dem container extrahiert werden und nach dem Updaten wieder eingespeilt werden.
öffne die portainer oberfläche und öffne der reihe nach alle container die du updaten willst und clicke auf den „recreate“ Button
Achtung!: recreate ist nicht der gleiche command als bei der erstellung des containers („docker run“), am besten schreibt man sich den ursprünglichen Befehl in einer *.sh datei auf und verwendet diesen nach löschen des contaienrs.

Update des „synapse-postgres“ containers
vor dem Update folgende Befehle ausführen: im den fall verwenden wir als username: robert und datenbank: synapse
docker exec -i synapse-postgres pg_dump -U robert synapse > ~/docker/postgres/database.synaptics.backup.sql
nun per „recreate Button“ updaten und dann das backup mit folgendem script wieder einspielen:
docker exec -i synapse-postgres psql -U robert postgres -c "DROP DATABASE synapse;" docker exec -i synapse-postgres psql -U robert postgres -c "CREATE DATABASE synapse WITH OWNER kemi LC_COLLATE='C' LC_CTYPE='C' TEMPLATE=template0;" docker exec -i synapse-postgres psql -U robert synapse < ~/docker/postgres/database.synaptics.backup.sql
Fertig alle Container sind auf dem neuesten stand 🙂
2: Umzug
ein umzug ist nicht nötig wenn sich die Domain ändert da die sql datenbank dann nichtmehr zusammenpasst und eine neuinstallattion benötigt wird
zum erstellen einer testumgebung quasi ein clon kann mann schnell machen
dazu einfach vom der stable instllation folgendes Archiev erstellen:
tar -czvf docker.installation.tar.gz ~/docker
dann dass archiev auf die neue testumgebung kopieren:
scp docker.installation.tar.gz robert@192.168.0.XXX:~/
im Terminal der neuen Testumgebung dann
cd ~/ tar -xzvf docker.installation.tar.gz
somit ist die ordnerstruktur mit allen configurationsdateien instlliert.
jetzt noch alle „docker run“ Befehle ausführen die zur „matrix container“ installation verwendet wurden
und noch das SQL backup einspielen
Fertig
3. optional BACKUP des Matrix Servers
zunächst stoppen wir alle 4 Container auf der portainer-weboberfläche (synapse, synapse-postgres, nginx-revers-proxy, synapse-admin)
Backup der Postgresql Datenbank
docker exec -i POSTGRES-DOCKER-CONTAINER pg_dump -U BENUTZERNAME DATENBANKNAME > ~/docker/postgres/database.synaptics.backup.sql
zbsp.:
docker exec -i synapse-postgres pg_dump -U norbert synapse > ~/docker/postgres/database.synaptics.backup.sql
Backup von Mediendateien
angenommen du hast ein Volume für die Mediendaten beim installeiren des contaienrs folgenmdermasen angegeben:
--mount type=bind,source=/media/FESTPALTTE/matrix/media_store,target=/data/media_store
dann macsht du ein backup mit folgendem befehl:
tar -czvf mediendatenbackup.tar /media/FESTPALTTE/matrix/media
Backup von Synapse – Admin
der container benötigt kein Backup da nur der SYNAPSE_ACCESS_TOKEN zur neuerstellung benötigt wird
diesen sollte man sich bei der ursprünglichen erstellugn des contaienrs aufgeschrieben haben.
alternativ kann man ihn sich mit folgendem befehl anzeigen lassen:
curl -X POST \ -H "Content-Type: application/json" \ -d '{"type": "m.login.password", "user": "admin", "password": "somePasswd"}' \ http://localhost:8008/_matrix/client/r0/login
Backup aller configurationsdateien
am besten einfach ein Archiv es gesammten ~/docker ordners machen
~/ steht dabei für das homeverzeichnisses des aktuellen Benutzers zbsp: „/home/robert“
tar -czvf docker.tar.gz ~/docker
SOMIT IST DAS BACKUP ERLEDIGT
Schreibe einen Kommentar
Du musst angemeldet sein, um einen Kommentar abzugeben.