wake-up-neo.net

Wie umgehen Sie die Größenbeschränkung von Docker.qcow2 im Docker für Mac?

Ich habe eine große Datenbank (100 GB +), die ich mit dem offiziellen Postgres-Image ausführen möchte.

Ich kann die Daten nicht in einem Docker-Volume speichern, da die ~/Library/Containers/com.docker.docker/Data/com.docker.driver.AMD64-linux/Docker.qcow2-Datei in Docker für Mac eine Größenbeschränkung von etwa 60 GB hat.

Ich zögere, ein Host-Verzeichnis als Volume zu mounten, da der Dateizugriff in gemounteten Host-Verzeichnis-Volumes wesentlich langsamer ist als bei normalen Volumes.

Dies sind einige nützliche Links, die auf diese Probleme näher eingehen:

  • Dieses beschreibt die Größenbeschränkung der Datei Docker.qcow2
  • Dieses beschreibt auch die Größenbeschränkung der Docker.qcow2-Datei
  • Dies beschreibt das Problem mit der Geschwindigkeit des gemounteten Host-Verzeichnisvolumens
  • Dieses gibt eine schöne Beschreibung, wie die Docker.qcow2-Datei durch eine Datei ersetzt wird, die größer werden kann
  • In diesem wird erläutert, wie die Docker.qcow2-Datei nicht verkleinert wird, wenn der Inhalt entfernt wird (dies hat keinen direkten Zusammenhang, kann aber das Problem weiter komplizieren)

Essen Sie alle nur den Geschwindigkeitsverlust und mounten Sie ein Host-Verzeichnis? Erstellen Sie manuell eine qcow2-Datei, die mit qemu größer werden kann (wenn Sie dies tun, müssen Sie diese Datei zwischen Upgrades aufbewahren)? Tun Sie etwas anderes, um dieses Problem zu lösen?

20
James Chevalier

Docker for Mac 18.06 wechselt vom qcow2-Dateiformat zum unformatierten Dateiformat, wodurch die Geschwindigkeit und die Festplattennutzung verbessert werden. Das Kernproblem bleibt weiterhin bestehen, da Docker über einen begrenzten Speicherplatz verfügt, den er für alle seine Daten verwenden kann. Sie können jetzt jedoch festlegen, was dieses Limit in den Voreinstellungen -> Datenträger -> Datenträgerabbildgröße ist.

Die Docker für Mac-Version 17.12 war die erste Version, die das unformatierte Dateiformat einführte. In der ursprünglichen Version gab es jedoch einige Fehler, die dazu führten, dass sie es vorübergehend als Feature entfernt haben. Sie können diese Seite nach "roh" durchsuchen, um den Verlauf des Features anzuzeigen.

Es gibt einen großartigen Hinweis hier darüber, wie Docker for Mac die Festplattennutzung meldet ...

Daraufhin wird die logische Größe angezeigt:

ls -alh ~/Library/Containers/com.docker.docker/Data/vms/0/Docker.raw

Während dies die physische Größe anzeigt:

du -h ~/Library/Containers/com.docker.docker/Data/vms/0/Docker.raw

0
James Chevalier

Das folgende Skript löscht und erstellt eine neue, verkleinerte Docker.qcow2-Datei, wobei die als Argumente übergebenen Bilder beibehalten werden.

https://blog.mrtrustor.net/post/clean-docker-for-mac/

Hoffe das hilft.

2
obe6

Für eine Situation wie diese würde ich definitiv empfehlen, ein qcow-Bild zu erstellen, das größer werden kann.

Dies ist ein relativ unkomplizierter Prozess, und Sie erhalten die Leistungsvorteile, die bei der Ausführung einer großen Datenbank in der Regel durchaus erforderlich sind.

1
programmerq