Overlay-Dateisysteme

Hier mal eine Grafik zur Overlay2FS Technik:

Overlay(2)FS

OverlayFS(2)-Modell (Bild: Liebel - Skalierbare Container-Infrastrukturen für Ihr Unternehmen)

Struktur für Overlay-Techniken (allgemein - von unten nach oben!):

  • Read-only Schichten

    • bootfs mit Kernel und cgroups

    • Basis Image (z.B. Alpine)

    • Application Image (z.B. Webserver Apache oder Nginx)

    • weitere Application-Layers

  • Read-Write Container Schicht (quasi on top)

    Jetzt wird aus einem Image ein Container!

Copy-On-Write (COW)

Zugriff durch die Schichten und in oberster Schicht (rw-Container) Kopie anlegen, für Daten aus den unteren ro-Schichten.

Ermitteln des Storage-Overlay-Systems

docker info | grep Storage

Übersicht Overlay-Systeme:

  • vfs (nur für Testing/Debugging)

  • aufs (ältester Docker Storage Driver; Advanced Multi-layered Unification Filesystem)

    Anm.: nur noch selten vertreten; siehe: Knoppix

  • overlay2 (die modernisierte overlay Variante und Docker-Standard)

    Anm.: Kernel >= 4.0 nötig!

  • btrfs (siehe openSUSE/SLES)

    Achtung (siehe Suse Installationen): Literatur empfiehlt noch keinen produktiven Einsatz!

  • zfs

    performant, hoher RAM-Verbrauch, Lizenzfragen; hinterfragen: Ubuntu nutzt zfs

  • devicemapper

    in allen Distros verfügbar; muss mit direct-lvm eingebunden werden (nicht: loop-lvm)

Siehe hierzu auch Ordnerstrukturen: /var/lib/docker/overlay...

Ab Docker Version 29.0 wird ein anderer Filesystem-Standard benutzt: containerd image store statt OverlayFS2.

Die Art des genutzten Storage System kann man über docker info herausfinden.

...
Server Version: 29.2.1
Storage Driver: overlayfs
 driver-type: io.containerd.snapshotter.v1
...

Das bedeutet, dass sich die Images nicht mehr in /var/lib/docker sondern in /var/lib/containerd befinden!