admin_grundlagen:docker:btrfs
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Beide Seiten, vorherige ÜberarbeitungVorherige ÜberarbeitungNächste Überarbeitung | Vorherige Überarbeitung | ||
| admin_grundlagen:docker:btrfs [2026/02/13 07:38] – ingo_wichmann | admin_grundlagen:docker:btrfs [2026/05/03 09:07] (aktuell) – ingo_wichmann | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| ====== Docker mit BTRFS als Storage ====== | ====== Docker mit BTRFS als Storage ====== | ||
| + | Hier geht es darum, alles was in Docker ist mit Snapshots sichern zu können. Und nicht um [[https:// | ||
| ===== BTRFS vorbereiten ===== | ===== BTRFS vorbereiten ===== | ||
| Voraussetzungen: | Voraussetzungen: | ||
| - | * kernel unterstützt BTRFS (( | + | * kernel unterstützt |
| modinfo btrfs | modinfo btrfs | ||
| Zeile 14: | Zeile 15: | ||
| * Freie Partition oder freies Logical Volume | * Freie Partition oder freies Logical Volume | ||
| + | du -sh / | ||
| lsblk | lsblk | ||
| - | | + | -> Blockdevice mit genug Platz wählen. |
| + | | ||
| -> UUID merken, kommt später in die ''/ | -> UUID merken, kommt später in die ''/ | ||
| - | mount -m /dev/sdaX /mnt/btrfs | + | mount -m /dev/xxx /mnt/btrfs |
| cd /mnt/btrfs | cd /mnt/btrfs | ||
| btrfs subvolume create $(date ' | btrfs subvolume create $(date ' | ||
| - | btrfs subvolume | + | btrfs subvolume |
| - | -> Subvolume ID merken und statt 20xxxxxx00 einsetzen: | + | |
| - | | + | ===== containerd Daten ins Docker-Verzeichnis verschieben ===== |
| + | ab Docker Version 29.0 ist containerd das default Storage Backend | ||
| + | dockerd --version | ||
| + | docker info -f '{{ .DriverStatus }}' | ||
| + | -> enthält: '' | ||
| + | |||
| + | | ||
| + | <file txt / | ||
| + | … | ||
| + | root = "/ | ||
| + | … | ||
| + | </ | ||
| + | cd /var/lib | ||
| + | mv containerd/ docker | ||
| + | ln -s docker/ | ||
| ===== Docker Daten in BTRFS verschieben ===== | ===== Docker Daten in BTRFS verschieben ===== | ||
| - | systemctl stop docker.socket docker.service | + | systemctl stop docker.socket docker.service |
| cd /var/lib/ | cd /var/lib/ | ||
| - | du -sh docker | ||
| - | df -h . | ||
| - | -> ist genug Platz für ein Backup? | ||
| - | tar -caf docker.tar.zst docker/ | ||
| shopt -s dotglob | shopt -s dotglob | ||
| - | | + | |
| <file txt / | <file txt / | ||
| … | … | ||
| - | # device during installation: | + | # device during installation: |
| UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx / | UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx / | ||
| UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /mnt/btrfs btrfs noauto, | UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /mnt/btrfs btrfs noauto, | ||
| </ | </ | ||
| mount -av | mount -av | ||
| - | tar -xf docker.tar.zst | ||
| - | rm docker.tar.zst | ||
| - | |||
| - | systemctl start docker.socket | ||
| + | systemctl start docker.socket docker.service containerd.service | ||
| + | ++++ ohne containerd: | | ||
| + | systemctl start docker.socket docker.socket | ||
| + | ++++ | ||
| ===== Snapshot erstellen ===== | ===== Snapshot erstellen ===== | ||
| aktuell aktives Docker-Subvolume ermitteln: | aktuell aktives Docker-Subvolume ermitteln: | ||
| Zeile 50: | Zeile 64: | ||
| cd /mnt/btrfs | cd /mnt/btrfs | ||
| btrfs subvolume get-default . | btrfs subvolume get-default . | ||
| - | -> ID 472 gen 428819 top level 5 path **20xxxxxx00** | + | -> Subvolume merken: '' |
| - | Container stoppen: | + | === Container stoppen |
| - | systemctl stop docker.socket docker.service | + | systemctl stop docker.socket docker.service |
| - | Snapshot erstellen | + | ++++ ohne containerd: | |
| + | systemctl stop docker.socket docker.socket | ||
| + | ++++ | ||
| + | === Snapshot erstellen | ||
| btrfs subvolume snapshot 20xxxxxx00 $(date ' | btrfs subvolume snapshot 20xxxxxx00 $(date ' | ||
| - | Container starten: | ||
| - | systemctl start docker.socket | ||
| - | watch docker ps | ||
| - | ====== Docker mit BTRFS statt overlay ====== | + | === Container starten |
| - | siehe auch https:// | + | |
| - | <code json /etc/docker/daemon.json> | + | ++++ ohne containerd: | |
| - | { | + | systemctl start docker.socket docker.service |
| - | " | + | ++++ |
| - | } | + | === Starten überprüfen === |
| - | </ | + | |
| - | systemctl start docker.socket | + | |
| - | systemctl start docker.service | + | |
| - | + | ||
| - | prüfen: | + | |
| - | docker | + | |
| - | -> '' | + | |
admin_grundlagen/docker/btrfs.1770968286.txt.gz · Zuletzt geändert: 2026/02/13 07:38 von ingo_wichmann
