Je ne suis pas sûr de savoir quelle est la meilleure pratique de l'utilisation du conteneur docker. Lorsque j'utilise VM, disons ubuntu, pour exécuter une application Web, j'installe tous les logiciels dont j'ai besoin pour exécuter l'application, comme la base de données, les services Web, etc. et les utiliser comme un système d'exploitation autonome.docker os conteneur vs app conteneur
Cependant, Docker peut être utilisé d'une manière différente.
Dans un scénario donné que je veux exécuter une application Web, j'ai deux options:
installer tous les logiciels sur un conteneur; installez la base de données, Java, et tous les autres logiciels nécessaires pour exécuter (c'est-à-dire utiliser comme j'utiliserais VM). Installer chaque application sur des contenants distincts; base de données dans un conteneur, service Web sur l'autre conteneur et les faire se parler.
L'option 1) semble être plus facile à déployer une application complète empilés, mais peut être plus difficile à l'échelle s'il y a des problèmes de complications de dépendance entre les paquets ou l'allocation des ressources OS à chaque logiciel. L'option 2) semble être plus difficile à déployer, mais chaque conteneur peut être amélioré sans trop de douleur.
Quelle est la pratique courante chez les utilisateurs de Docker?
Edit: réponse à cette question est également noté dans https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/#run-only-one-process-per-container