Docker-Umgebung reinigen: devicemapper
Habe ich ein docker-Umgebung mit 2 Containern (Jenkins und Nexus, die beide mit Ihren eigenen namens-Volumen).
Ich habe einen täglichen cron-job löscht ungenutzte Container und Bilder. Das ist in Ordnung. Aber das problem ist in meinem devicemapper:
du -sh /var/lib/docker/
30G docker/
Kann ich die einzelnen Ordner in meiner docker-Ordner:
Volumen (groß, aber das ist normal in meinem Fall):
/var/lib/docker# du -sh volumes/
14G volumes/
Behälter:
/var/lib/docker# du -sh containers/
3.2M containers/
Bilder:
/var/lib/docker# du -sh image/
5.8M image/
Devicemapper:
/var/lib/docker# du -sh devicemapper/
16G devicemapper/
/var/lib/docker/devicemapper/mnt
7,3 G
/var/lib/docker/devicemapper/devicemapper
8.1 G
Andockfenster info:
Storage Driver: devicemapper
Pool Name: docker-202:1-xxx-pool
Pool Blocksize: 65.54 kB
Base Device Size: 10.74 GB
Backing Filesystem: ext4
Data file: /dev/loop0
Metadata file: /dev/loop1
Data Space Used: 5.377 GB
Data Space Total: 107.4 GB
Data Space Available: 28.8 GB
Metadata Space Used: 6.148 MB
Metadata Space Total: 2.147 GB
Metadata Space Available: 2.141 GB
Udev Sync Supported: true
Was ist dieser Raum, und bin ich in der Lage, diese sauber ohne zu brechen Zeug?
InformationsquelleAutor der Frage DenCowboy | 2016-06-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht mit einem devicemapper loop-Datei für etwas ernstes! Docker hat große Warnungen über diese.
Den
/var/lib/docker/devicemapper/devicemapper
Verzeichnis enthält die sparse-loop-Dateien, die alle Daten enthalten, die docker-mounts. So würden Sie brauchen, um die Verwendung von lvm-tools zu durchstöbern um Sie herum und Dinge tun. Gelesen zu haben, obwohl das entfernen Probleme mit devicemapperSie sind irgendwie sorta gelöst, aber vielleicht auch nicht.Ich würde Weg von
devicemapper
wo möglich oder die Verwendung von LVM thin pools nichts auf RHEL basiert. Wenn Sie nicht ändern können-storage-Treiber, das gleiche Verfahren wird zumindest klar zugewiesene lichten Raum können Sie nicht zurückfordern.Änderung der docker-storage-Treiber
Wechselnde storage-Treiber erfordern dumping Ihre
/var/lib/docker
Verzeichnisse, die enthält alle Ihre Andockfenster Daten. Es gibt Möglichkeiten zu sparen, Teile es aber beinhaltet, dass Herumspielen mit Docker-Interna. Besser zu Begehen-und export-Container oder volumes, die Sie behalten möchten, und importieren Sie Sie nach dem ändern. Sonst haben Sie ein frisches, leeres Docker installieren!Exportieren von Daten
Stop-Andockfenster
Entfernen
/var/lib/docker
Ändern Sie Ihre Andockfenster starten, um die neuen storage-Treiber.
Set
--storage-driver=<name>
im/lib/systemd/system/docker.service
oder/etc/systemd/system/docker.service
oder/etc/default/docker
oder/etc/sysconfig/docker
Start Docker
Daten Importieren
AUFS
AUFS ist nicht im mainline-kernel (und wird es auch nie werden), was bedeutet Distribution aktiv, gehören Sie irgendwie. Für Ubuntu ist es in der
linux-image-extra
Pakete.Dann ändern Sie den Speicher-Treiber-option, um
--storage-driver=aufs
OverlayFS
OverlayFS ist bereits in Ubuntu ändern Sie einfach die Speicher-Treiber auf
--storage-driver=overlay2
oder--storage-driver=overlay
wenn Sie noch mit einem 3.x-kernelich bin mir nicht sicher, wie gut eine Idee ist dies jetzt. Es kann nicht viel schlimmer sein als die loop-Datei, aberDie
overlay2
Treiber ist ziemlich solide für dev verwenden, aber nicht als Produktion noch bereit (z.B. Docker Unternehmen nicht unterstützen), aber es wird gedrückt, werden die standard-Treiber durch die AUFS/Kernel-Probleme.Direkte LVM Thin-Pool
Statt der devicemapper-loop-Datei aus, die Sie verwenden können, ein LVM thin-pool direkt. RHEL ist dies einfach mit einem
Andockfenster-storage-setup
- Dienstprogramm, das zusammen mit Ihrer EPEL-Andockfenster-Paket. Andockfenster haben detaillierte Schritte für die Einrichtung der volumes manuell.Andockfenster 17.06+ unterstützt Verwaltung von einfachen
direct-lvm
block-device-setups für Sie.Einfach nicht aus dem Raum laufen in der LVM-volume, je. Sie am Ende mit einem nicht reagierenden Docker-daemon, der getötet werden muss und dann LVM-Ressourcen, die noch in Gebrauch sind, sind schwer zu bereinigen.
InformationsquelleAutor der Antwort Matt
Erste, was ist devicemapper (offizielle Dokumentation)
Wenn Ihr
docker info
zeigt IhreStorage Driver
istdevicemapper
(und nichtaufs
), gehen Sie mit Vorsicht im Hinblick auf die Ordner.Siehe zum Beispiel Problem 18867.
InformationsquelleAutor der Antwort VonC