Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


admin_grundlagen:docker:btrfs

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
admin_grundlagen:docker:btrfs [2026/02/25 08:54] – [BTRFS vorbereiten] ingo_wichmannadmin_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://docs.docker.com/storage/storagedriver/btrfs-driver/| Docker mit BTRFS statt overlay ]]
  
 ===== BTRFS vorbereiten ===== ===== BTRFS vorbereiten =====
Zeile 14: Zeile 15:
   * Freie Partition oder freies Logical Volume   * Freie Partition oder freies Logical Volume
  
 +  du -sh /var/lib/docker
   lsblk   lsblk
-  mkfs.btrfs /dev/sdaX+-> Blockdevice mit genug Platz wählen. 
 +  mkfs.btrfs /dev/xxx
 -> UUID merken, kommt später in die ''/etc/fstab'' -> UUID merken, kommt später in die ''/etc/fstab''
-  mount -m /dev/sdaX /mnt/btrfs+  mount -m /dev/xxx /mnt/btrfs
   cd /mnt/btrfs   cd /mnt/btrfs
   btrfs subvolume create $(date '+%Y%m%d')00   btrfs subvolume create $(date '+%Y%m%d')00
-  btrfs subvolume show $(date '+%Y%m%d')00 
--> Subvolume ID merken 
   btrfs subvolume set-default $(date '+%Y%m%d')00   btrfs subvolume set-default $(date '+%Y%m%d')00
 +
 +===== 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: ''driver-type io.containerd.snapshotter.v1''
 +
 +  systemctl stop docker.socket docker.service containerd.service
 +<file txt /etc/containerd/config.toml>
 +…
 +root = "/var/lib/docker/containerd"
 +…
 +</file>
 +  cd /var/lib
 +  mv containerd/ docker
 +  ln -s docker/containerd containerd
  
 ===== Docker Daten in BTRFS verschieben ===== ===== Docker Daten in BTRFS verschieben =====
-  systemctl stop docker.socket docker.service+  systemctl stop docker.socket docker.service containerd.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
-  rm -rf docker/*+  mv docker/* /mnt/btrfs/$(date '+%Y%m%d')00
 <file txt /etc/fstab> <file txt /etc/fstab>
 … …
-# device during installation: /dev/sdaX+# device during installation: /dev/xxx
 UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /var/lib/docker btrfs rw 0 2 UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /var/lib/docker btrfs rw 0 2
 UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /mnt/btrfs btrfs noauto,subvol=/ 0 2 UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /mnt/btrfs btrfs noauto,subvol=/ 0 2
 </file> </file>
   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: ''ID 472 gen 428819 top level 5 path **20xxxxxx00**''
  
-Container stoppen: +=== Container stoppen === 
-  systemctl stop docker.socket docker.service +  systemctl stop docker.socket docker.service containerd.service 
-Snapshot erstellen+++++ ohne containerd: | 
 +  systemctl stop docker.socket docker.socket 
 +++++ 
 +=== Snapshot erstellen ===
   btrfs subvolume snapshot 20xxxxxx00 $(date '+%Y%m%d')01   btrfs subvolume snapshot 20xxxxxx00 $(date '+%Y%m%d')01
-Container starten: 
-  systemctl start docker.socket 
-  watch docker ps 
  
-====== Docker mit BTRFS statt overlay ====== +=== Container starten === 
-siehe auch https://docs.docker.com/storage/storagedriver/btrfs-driver/ +  systemctl start docker.socket docker.service containerd.service 
-<code json /etc/docker/daemon.json> +++++ ohne containerd: | 
-{ +  systemctl start docker.socket docker.service 
-  "storage-driver": "btrfs" +++++ 
-} +=== Starten überprüfen ===  
-</code> +  watch docker ps
-  systemctl start docker.socket +
-  systemctl start docker.service +
- +
-prüfen: +
-  docker info +
--> ''Storage Driver: btrfs''+
  
  
admin_grundlagen/docker/btrfs.1772009686.txt.gz · Zuletzt geändert: 2026/02/25 08:54 von ingo_wichmann