linux-suse-opensuse container docker btrfs sles opensuse

Docker on SUSE: Setup & Btrfs Integration (Artikel 163)

Installation und Betrieb von Docker unter SUSE. Erfahren Sie alles über den spezialisierten Btrfs-Storage-Driver, die Verwaltung via YaST und Sicherheits-Best-Practices.

# Docker on SUSE: Container-Performance auf Btrfs

TL;DR / Management Summary Während Red Hat Docker komplett verbannt hat, unterstützt SUSE den Docker-Dämon weiterhin offiziell. Das Besondere in der SUSE-Welt ist die perfekte Integration in das Btrfs-Dateisystem: Docker nutzt hierfür einen nativen Storage-Driver, der Snapshots für Layer nutzt, was deutlich performanter als das klassische overlay2 auf Ext4 ist. Ein Senior Admin muss jedoch wissen, dass SUSE für neue Projekte Podman empfiehlt (siehe Artikel 164).


# 1. Einführung & Architektur

Docker und der Btrfs-Vorteil.

In SUSE ist Docker eng mit dem Dateisystem verzahnt. Anstatt Dateien in komplexen Verzeichnisstrukturen zu schichten, nutzt Docker Btrfs-Subvolumes für jeden Image-Layer.

# Die Architektur-Elemente (Mermaid)

graph TD
    A[Docker CLI] --> B[Docker Daemon: dockerd]
    B --> C[containerd runtime]
    B -->|Storage Driver| D[Btrfs Storage Driver]
    D --> E[Btrfs Root FS: /var/lib/docker/btrfs]
    E --> F[Snapshot per Layer]
    G[YaST Module] --> B

# 2. Installation & Erstes Setup

Container bereitstellen.

# Schritt 1: Pakete installieren

sudo zypper install docker yast2-docker
sudo systemctl enable --now docker

# Schritt 2: User-Berechtigungen

Standardmäßig darf nur Root Docker-Befehle ausführen.

sudo usermod -aG docker <username>
# Danach ab- und anmelden

# 3. Die SUSE-Besonderheit: Storage Driver

Btrfs im Einsatz.

Prüfen Sie nach der Installation, welcher Treiber aktiv ist:

docker info | grep "Storage Driver"
# Output sollte 'btrfs' sein.

Vorteil: Wenn Sie das System via Snapper (Artikel 154) zurückrollen, können Sie entscheiden, ob Sie die Docker-Images mit zurückrollen wollen, da sie Teil der Btrfs-Hierarchie sind.


# 4. Day-2 Operations: Management via YaST

Container grafisch überwachen.

SUSE bietet ein eigenes Modul:

sudo yast2 docker

Hier können Sie:

  • Images suchen und laden.
  • Laufende Container sehen und deren Logs lesen.
  • Container starten/stoppen, ohne das CLI nutzen zu müssen.

# 5. Troubleshooting & “War Stories”

Wenn der Wal strandet.

# Story 1: “Das volle /var/lib/docker Subvolume”

Symptom: df -h zeigt Platz an, aber Docker meldet “No space left on device”. Ursache: Das Btrfs-Kontingent (Quota) für das Docker-Subvolume ist erreicht, oder die Metadaten-Chunks sind voll. Lösung: Führen Sie btrfs balance start /var/lib/docker aus und löschen Sie ungenutzte Images mit docker image prune -a.

# Story 2: “Inkompatible Overlay-Rules”

Symptom: Ein Image, das auf Ubuntu gebaut wurde, startet unter SUSE nicht mit Fehlermeldungen über Dateizugriffe. Ursache: Das Image erwartet overlay2 Verhalten, aber SUSE nutzt den btrfs Treiber. Selten, aber möglich bei sehr speziellen Datei-Sperren. Lösung: Stellen Sie Docker in der /etc/docker/daemon.json testweise auf overlay2 um (erfordert Neustart und Datenverlust in /var/lib/docker!).


# 6. Fazit & Empfehlung

  • Bestehendes: Docker ist unter SUSE extrem stabil und performant durch die Btrfs-Integration.
  • Neues: Nutzen Sie für neue Deployments Podman (Artikel 164), da es die strategische Richtung von SUSE für SLES 15 und 16 ist.
  • Registry: Nutzen Sie die offizielle SUSE-Registry registry.suse.com für gehärtete Basis-Images.

# Anhang: Cheatsheet

Aufgabe SUSE / CLI Befehl
Docker Info docker info
Image ziehen docker pull registry.suse.com/suse/sle15:latest
Status prüfen systemctl status docker
Ressourcen-Check docker stats
Alles löschen docker system prune
YaST Modul yast2 docker
Log-Datei journalctl -u docker -f