Kategorie: Docker

  • Backup eines Docker-Volumes am Beispiel von wp_content

    Haben Sie Daten eines Docker-Containers in einem Volume – also außerhalb des Containers – abgelegt, können Sie für den Inhalt des Volumes Backups erstellen und auch wieder zurückspielen.

    Der Befehl für das Backup eines Volumes im Terminal sieht auf den ersten Blick etwas kryptisch aus, ist aber sehr logisch aufgebaut. Wir erklären Schritt für Schritt, was jeder Teil bewirkt:

    Der Befehl im Überblick

    sudo tar -czvf wp_content-backup.tar.gz -C /var/lib/docker/volumes/wp_content/_data .

    Dieser Befehl erstellt ein komprimiertes Backup-Archiv (eine .tar.gz-Datei) vom Inhalt des Docker-Volumes wp_content, das unter /var/lib/docker/volumes/... gespeichert ist.

    Erklärung der einzelnen Teile

    TeilBedeutung
    sudoFührt den Befehl mit Administratorrechten aus – nötig wegen Zugriff auf /var/lib/docker/...
    tarDas Programm, das Archive erstellt oder entpackt
    -ccreate – ein neues Archiv erstellen
    -zgzip-Komprimierung anwenden (→ .tar.gz Datei)
    -vverbose – zeigt während des Vorgangs die bearbeiteten Dateien an
    -f wp_content-backup.tar.gzSpeichert das Archiv unter diesem Dateinamen im aktuellen Verzeichnis
    -C /var/lib/docker/volumes/wp_content/_dataWechsle in dieses Verzeichnis, bevor das Archiv erstellt wird
    .Füge alle Inhalte dieses Verzeichnisses in das Archiv ein

    Was passiert konkret?

    Der Befehl:

    1. Wechselt intern ins Verzeichnis:/var/lib/docker/volumes/wp_content/_data
    2. Packt den gesamten Inhalt dieses Ordners in ein Archiv namens:wp_content-backup.tar.gz… das im aktuellen Verzeichnis (z. B. Persönlicher Ordner) landet.
    3. Zeigt währenddessen jede Datei, die ins Archiv kommt (wegen -v).

    Ergebnis

    Man erhält eine komprimierte Sicherung von allem, was in wp_content liegt:

    • hochgeladene Medien (Bilder, PDFs etc.)
    • Installierte Themes und Plugins
    • Benutzerdefinierte CSS/JS-Dateien usw.
    Die Ubuntu Dateiverwaltung, geöffnet ist das Verzeichnis "data" des Volumes.
    Start des Backups im Terminal, aufgelistet werden die jeweils aktuell gesicherten Ordner.

    Wohin mit dem Backup?

    Sinnvoll ist es, das Backup im gleichen Verzeichnis zu speichern, in dem sich auch die compose.yaml Datei des gesicherten WordPress-Projekts befindet. Das erhöht die Übersicht und ist vor allem praktisch, wenn Sie später eine Versionsverwaltung nutzen möchten.

    my-wp_1/ 
       |--- docker-compose.yaml
       |--- wp_content-backup.tar.gz

    Hinweis: Dadurch ändert sich der Pfad zur Backup-Datei. Für das Backup wechseln Sie zunächst in Ihren Projektordner und starten dann den Backup-Befehl:

    # zuerst in das Verzeichnis wechseln:
    cd my-wp_1
    # dann das Backup starten:
    sudo tar -czvf wp_content-backup.tar.gz -C /var/lib/docker/volumes/wp_content/_data .

    Und der Restore-Befehl:

    # zuerst in das Verzeichnis wechseln:
    cd my-wp_1
    # dann der Restore-Befehl:
    sudo tar -xzvf wp_content-backup.tar.gz -C ./var/lib/docker/volumes/wp_content/_data

    Wenn Sie möchten, können Sie einen Blick in das Backup-Archiv werfen. Mit einem Doppelklick auf den Archiv-Ordner wird er entpackt.

    Wiederherstellen

    Zum Zurückspielen (Restore) in ein Volume:

    sudo tar -xzvf wp_content-backup.tar.gz -C /var/lib/docker/volumes/wp_content/_data

    ⚠️ Wichtig: Container vorher stoppen, damit es keine Konflikte gibt:

    docker compose down

    Und danach evtl. die Rechte im Container prüfen:

    docker exec -it my-wp_1 bash<br>chown -R www-data:www-data /var/www/html/wp-content

    Mit dem ersten Befehl öffnen Sie ein interaktives Terminal innerhalb des WordPress-Containers. Dort haben Sie Zugriff auf das Dateisystem des Containers, einschließlich aller installierten Plugins, Themes und Uploads.

    Der zweite Befehl sorgt dafür, dass das Verzeichnis wp-content – einschließlich aller enthaltenen Dateien und Unterverzeichnisse (Option -R) – dem Benutzer und der Gruppe www-data zugeordnet wird. Das ist wichtig, damit der Webserver innerhalb des Containers die nötigen Schreibrechte besitzt.

    Hintergrund zu www-data

    • www-data ist der Standardbenutzer, unter dem Apache im Container läuft.
    • Ohne die richtigen Rechte kann WordPress z. B. keine Bilder hochladen oder Plugins installieren.