Nicht sicher, es gibt einen "besten Fall", aber ich werde versuchen, trotzdem zu antworten.
Commiting kann sehr nützlich sein, wenn ein Container schnell erstellt werden muss, da das Schreiben von Dockerfiles normalerweise zeitaufwändiger ist als das Erstellen eines Containers von "innerhalb". Mit Commits können Sie einen Container zwischen Computern teilen (normalerweise über eine registry).
Was Ihren Satz ...
denke ich, Datenbank-Container mit Daten zu verpflichten, aber diese Option nicht unterstützt wird.
Das ist nicht ganz richtig, Sie können tatsächlich die Daten einer Datenbank in einem Container festschreiben. Ich nehme an, Sie haben Ihre DB-Daten in einem Datenträger-Mount, aber:
Die COMMIT-Operation enthält keine Daten enthalten in Volumes im Container montiert.
- Docker docs
Anstatt also Ihre DB-Daten in einem Volumen montieren zu müssen, die die Daten auf dem Host speichert und den Behälter nicht, Sie könnte hat Ihre DB-Daten in einem Verzeichnis im Besitz von der Container anstelle des Hosts. Dann würden die Daten in das Commit einbezogen werden.
Es kann verwirrend sein, es ist nicht wirklich das gleiche wie ein Git-Commit, da Sie eigentlich nicht die Projektdateien festschreiben, im Wesentlichen nur das, was in der Dockerfile selbst angegeben ist. Nehmen wir zum Beispiel an, ich brauche Apache auf Ubuntu, wenn das nicht bereits existiert, ich könnte eine neue Docker-Datei erstellen, die von einem vorhandenen Ubuntu-Image einzieht, dann schreibe ich die Konfiguration aus, um den Apache einzurichten. Ich kann dann dieses Bild an den Docker-Hub übergeben/schieben, um es in zukünftigen Projekten zu verwenden, oder um es für andere Benutzer mit der Community zu teilen. – DivXZero