Ich habe eine Diskussion mit einem Freund über Anwendungsfälle für Docker . Einer im Team möchte Docker für alles verwenden - wie eine Art universeller Unix-Prozess-Wrapper. Der andere ist der Ansicht, dass Docker nur für zustandslose Anwendungen wie Microservices und AWS Lambda- Apps verwendet werden sollte.
Für beide haben wir Proof of Concepts entwickelt. In unserem Docker-Cluster befindet sich ein freigegebenes Laufwerk, das beim Bereitstellen des Docker-Hosts bereitgestellt wird. Wenn eine Datenbank in einem Container bereitgestellt wird, wird lediglich ein Volume auf dem freigegebenen Laufwerk bereitgestellt.
Mein Freund hält immer noch an seiner Position fest, obwohl ihm die gegenteiligen Beweise gezeigt wurden. (Er argumentiert auch, dass Docker unnötiges Risiko hinzufügt, indem er dem Stapel Komplexität hinzufügt .)
Ich versuche zuzuhören und seinen Standpunkt zu verstehen, sowohl in einem Akt des Einfühlungsvermögens, als auch um besser mit ihm zu argumentieren. (Wir verstehen uns alle recht gut - das ist also eine Mischung aus Scherz und ernsthafter Diskussion).
Art der Frage hinter der Frage ist: Sind Datenbanken Rinder ? Dieser Kommentar legt nahe, dass eine gute Strategie zum automatischen Sichern und Abrufen Ihrer Datenbank nicht von einem Viehserver zu unterscheiden ist.
Meine Frage ist: Aus welchen Gründen sollte Docker nicht für Datenbanken verwendet werden?
EDIT: Leute haben mich gebeten, meine Terminologie zu klären. Ich ging davon aus, dass sich die Datenbankanwendung im Container und der Speicher im Volume befindet. Was ich meinte, war, dass sich das RDBMS im Container befindet und der Datenbankspeicher im Volume.
Einige Kommentatoren haben vorgeschlagen, dass die Docker-Volume-Treiber nicht sehr gut mit Datenbank-Schreibvorgängen funktionieren. (Oder etwas in diesem Sinne). Könnten Sie das bitte näher erläutern?