J'ai une discussion avec un ami sur les cas d'utilisation de Docker . Un gars de l'équipe veut utiliser Docker pour tout - comme une sorte de wrapper de processus Unix universel. L'autre pense que Docker ne devrait être utilisé que pour les applications sans état comme les microservices et les applications de style AWS Lambda .
Nous avons conçu des preuves de concepts pour les deux. Sur notre cluster Docker, nous avons un lecteur partagé qui est monté lorsque l'hôte Docker est monté, et si une base de données dans un conteneur est montée, il monte simplement un volume sur le lecteur partagé.
Mon ami reste fidèle à sa position, malgré la preuve contraire. (Il fait également valoir que Docker ajoute des risques inutiles en ajoutant de la complexité à la pile.)
J'essaie d'écouter et de comprendre son point de vue, à la fois dans un acte d'empathie, mais aussi pour mieux raisonner avec lui. (Nous nous entendons tous très bien - c'est donc un mélange de plaisanteries et de discussions sérieuses).
Le type de question derrière la question est: les bases de données sont-elles des bovins ? Ce commentaire suggère qu'une bonne stratégie de sauvegarde et de récupération automatisée pour votre base de données est impossible à distinguer d'un serveur de bovins.
Ma question est: quelles sont les raisons pour lesquelles Docker ne doit pas être utilisé pour les bases de données?
EDIT: Les gens m'ont demandé de clarifier ma terminologie. Je supposais que l'application de base de données se trouvait dans le conteneur et que le stockage était dans le volume. Ce que je voulais dire, c'est que le SGBDR est dans le conteneur et le stockage de la base de données est dans le volume.
Certains commentateurs ont suggéré que les pilotes de volume docker ne fonctionneraient pas très bien avec les écritures de base de données. (Ou quelque chose à cet effet). Pourriez-vous développer cela?