Utilisation de Docker pour un serveur de messagerie
J'ai été intéressé par docker pendant un certain temps, mais pas sauté dans encore. J'ai besoin de mettre en place un serveur de courrier électronique, de sorte que la pensée peut-être que je pouvais l'utiliser comme une raison pour en savoir plus sur docker. Cependant, je suis sait pas comment l'aborder.
J'ai installé un serveur sur un VPS avant, mais pas en plusieurs conteneurs. J'aimerais installer Postfix, Dovecot, MySQL ou Postgresql, et SpamAssassin, similaire à ce qui est décrit ici:
Cependant, ce serait une bonne façon de dockerize? J'ai simplement mis le tout dans un seul conteneur? Ou serait-il mieux d'avoir MySQL dans un récipient, Postfix dans un autre, et de conteneurs supplémentaires pour Dovecot et SpamAssassin? Ou si certains conteneurs-elle être partagée?
Existe-il des HOWTOs sur l'installation d'un serveur de messagerie à l'aide de docker? Si il y est, je n'ai pas encore trouvé.
source d'informationauteur Tauren
Vous devez vous connecter pour publier un commentaire.
Le point de menu fixe n'est pas la conteneurisation pour la conteneurisation du saké. C'est de mettre ensemble des choses qui vont ensemble, et de les séparer des choses qui ne vont pas ensemble.
Avec cela à l'esprit, la façon dont je voudrais configurer ce paramètre est avec un conteneur de la base de données MySql et un autre contenant pour tous des composants de messagerie. Les composants de messagerie sont généralement intégrés les uns avec les autres en appelant les uns des autres exécutables ou en lecture/écriture de fichiers partagés, de sorte qu'il n'a pas de sens de les séparer dans des contenants séparés de toute façon. Depuis la base de données pourrait également être utilisé pour d'autres choses, et la communication avec elle est faite sur une socket, il fait plus de sens pour que ce soit un récipient séparé.
Dovecot, Spamassassin, et al pouvez aller dans des contenants séparés par postfix. Utilisation LMTP pour les connexions, et ça fait tout le travail. Ce qui est pratique.
Maintenant pour l'idéologique bits. Si vous avez vraiment envie de faire les choses "à l'docker voie", à quoi cela ressemble.
Postfix est difficile. Ce n'est pas un démon, mais plutôt un conglomérat de différentes démons qui parlent les uns aux autres et ne les différentes parties de la gestion du courrier des tâches. Certains de l'interaction entre ces composants démons est à partir de fichiers (. e.g les files d'attente de messages), quelque soit via des sockets, et certains est par l'entremise de signaux.
Lors du démarrage de postfix, vous commencez vraiment à la "master" démon, qui commence alors l'autre démon traite des besoins en utilisant les règles en maître.cf.
La journalisation est particulièrement difficile dans ce scénario. Tous les différents démons indépendamment journal de /dev/log, et il n'y a vraiment aucun moyen de traitement de ces journaux sans mettre un démon syslog à l'intérieur du conteneur. "Pas le docker!"
Fondamentalement, la compartimentation de la fonctionnalité dans postfix est très bien d'un micro-service type de démarche, mais elle n'est pas basée sur la conteneurisation. Il n'y a aucun moyen pour vous de séparer les différents services dans les différents conteneurs sous le panneau, et même si vous le pouviez, le recours à des signaux est problématique.
Je suppose qu'il pourrait être possible de re-concevoir le "maître", démon, lui donnant accès à l'docker dans le processus d'hôte (ou l'exécution de docker dans le panneau), et donc ce nouveau maître démon pourrait coordonner les différents services dans des contenants séparés. Nous pouvons spéculer, mais je n'ai pas entendu parler de quelqu'un passer cela comme un véritable projet.
Qui nous laisse le plus de chances de choisir un plus contenant sympathique démon que postfix pour une utilisation dans le panneau. J'ai été en utilisant postfix plus ou moins exclusivement sur les dix dernières années, et n'ont pas eu beaucoup de raisons de regarder autour de options jusqu'à maintenant. Je serais très intéressé si quelqu'un peut ajouter de commentaires sur les éventuelles plus docker-friendly MTA options?