# Docker-Freigabe von Speicherplatz bereinigen

## Docker-Festplattenbereinigung (Hosts)

Docker-Daten wachsen im Laufe der Zeit auf Host-Rechnern.\
Alte Vermietungen hinterlassen gestoppte Container, ungenutzte Images, Volumes und Build-Cache.\
Wenn Sie das nicht bereinigen, füllt sich die Root-Partition und Deployments beginnen zu fehlschlagen.

{% hint style="info" %}
Bereinigung nur ausführen, wenn der Server **nicht vermietet** ist und Sie keine alten Containerdaten benötigen.\
Wenn Sie sich unsicher sind, stoppen Sie hier und führen zuerst eine Festplattennutzungsprüfung durch.
{% endhint %}

***

## 1) Festplattennutzung prüfen

### OS-Ebene Festplattenspeicher (`df -h`)

Dies zeigt den freien Speicher auf jedem eingehängten Dateisystem an.

```bash
df -h
```

Wichtig sind vor allem `/` (root) und die Partition, die `/var/lib/docker`.

### Docker-Ebene Festplattennutzung (`docker system df`)

Dies zeigt, was Docker speichert und wie viel zurückgewonnen werden kann.

```bash
docker system df
```

Wenn Sie pro Image/Container mehr Details möchten:

```bash
docker system df -v
```

***

## 2) Vollständige Bereinigung (empfohlen)

Dies ist der Befehl „Docker-Rückstände aus vorherigen Vermietungen zurücksetzen“.\
Er entfernt ungenutzte Container, Images, Netzwerke und **ungenutzte Volumes**.

```bash
docker system prune -a --volumes
```

{% hint style="warning" %}
`-a` entfernt **alle ungenutzten Images**, nicht nur „dangling“-Images.\
Dazu gehören gecachte Images, die Sie für schnellere zukünftige Deployments behalten möchten.
{% endhint %}

***

## 3) Einzelne Bereinigungsbefehle (mehr Kontrolle)

Verwenden Sie diese, wenn Sie eine bestimmte Kategorie bereinigen möchten.\
Sie sind sicherer für inkrementelle Wartung.

### Container (nur gestoppte)

```bash
docker container prune
```

### Images (ungenutzt)

Nur danglingschichten entfernen:

```bash
docker image prune
```

Alle ungenutzten Images entfernen (gleiches Risiko wie `system prune -a`):

```bash
docker image prune -a
```

### Volumes (ungenutzt)

```bash
docker volume prune
```

### Netzwerke (ungenutzt)

```bash
docker network prune
```

***

## 4) Best Practices für die Host-Wartung

1. Bereinigen **zwischen Vermietungen** oder während geplanter Ausfallzeiten.
2. Behalten Sie einen Sicherheits-Puffer.\
   Zielen Sie auf **10–20 GB** frei auf der Root-Partition zu jeder Zeit.
3. Überprüfen Sie die Docker-Nutzung regelmäßig:
   * `df -h`
   * `docker system df`
4. Bevorzugen Sie zuerst inkrementelle Bereinigung:
   * `docker container prune`
   * `docker image prune`
   * `docker volume prune`
5. Vollständige Bereinigung nur bei Bedarf verwenden:
   * `docker system prune -a --volumes`
6. Wenn die Festplattennutzung weiter schnell wächst, untersuchen Sie:
   * Große Volumes, die von Mietern erstellt wurden.
   * Logs unter `/var/lib/docker/containers/*/*.log`.
   * Build-Cache durch häufige Image-Neuerstellungen.
