20

以前から docker に興味がありましたが、まだ飛び込んでいません。メールサーバーをセットアップする必要があるので、これを理由に docker についてもっと学ぶことができるのではないかと考えました。しかし、私はそれについて最善を尽くす方法が不明です。

以前に VPS にメールサーバーをインストールしたことがありますが、複数のコンテナーにはインストールしていません。ここで説明されているように、Postfix、Dovecot、MySQL または Postgresql、および SpamAssassin をインストールしたいと思います。

https://www.digitalocean.com/community/tutorials/how-to-configure-a-mail-server-using-postfix-dovecot-mysql-and-spamassasin

しかし、それをドッキングする良い方法は何でしょうか? すべてを 1 つのコンテナーに単純に入れますか? それとも、MySQL を 1 つのコンテナーに、Postfix を別のコンテナーに、さらに Dovecot と SpamAssassin 用のコンテナーを追加した方がよいでしょうか? それとも、一部のコンテナーを共有する必要がありますか?

docker を使用してメールサーバーをインストールするための HOWTO はありますか? あるとすれば、まだ見つかっていません。

4

2 に答える 2

21

Docker のポイントは、コンテナ化のためのコンテナ化ではありません。それは、一緒にあるものをまとめ、一緒でないものを分離することです。

それを念頭に置いて、これを設定する方法は、MySql データベース用のコンテナーと、すべてのメール コンポーネント用の別のコンテナーを使用することです。通常、メール コンポーネントは、互いの実行可能ファイルを呼び出すか、共有ファイルを読み書きすることによって相互に統合されます。そのため、それらを別々のコンテナーに分離することは意味がありません。データベースは他の目的にも使用でき、それとの通信はソケットを介して行われるため、それを別のコンテナーにする方が理にかなっています。

于 2015-01-28T03:30:04.093 に答える
19

Dovecot、Spamassassin などは、別々のコンテナーに入って postfix に移動できます。接続に LMTP を使用すると、すべて機能します。このくらいが実用的です。

次に、イデオロギーについて説明します。本当に「docker のやり方」でやりたいと思ったら、それはどのようなものでしょうか。

Postfix は難しいものです。これは 1 つのデーモンではなく、互いに対話し、メール処理タスクのさまざまな部分を実行するさまざまなデーモンのクラスターです。これらのコンポーネント デーモン間の対話には、ファイル (メール キューなど) を介したもの、ソケットを介したもの、シグナルを介したものがあります。

postfix を起動すると、'master' デーモンが実際に起動し、master.cf のルールを使用して、必要な他のデーモン プロセスが起動します。

このシナリオでは、ロギングは特に困難です。さまざまなデーモンはすべて個別に /dev/log にログを記録します。syslog デーモンをコンテナー内に配置せずにこれらのログを処理する方法は実際にはありません。「ドッカーのやり方じゃない!」

基本的に、postfix での機能の区分化は、マイクロサービスのようなアプローチですが、コンテナー化に基づいていません。docker の下でさまざまなサービスをさまざまなコンテナーに分離する方法はありません。また、分離できたとしても、シグナルへの依存には問題があります。

「マスター」デーモンを再設計して、ホストの docker プロセスにアクセスできるようにする (または docker 内で docker を実行する) ことは可能かもしれないと思います。したがって、この新しいマスター デーモンは、別々のコンテナー内のさまざまなサービスを調整できます。推測はできますが、これを実際のプロジェクトとして進めている人は聞いたことがありません。

これにより、docker で使用する postfix よりもコンテナーに適したデーモンを選択する可能性が高くなります。私は過去 10 年間、多かれ少なかれもっぱら postfix を使用してきましたが、今までオプションを検討する理由はあまりありませんでした。よりドッカーに適した MTA オプションの可能性について誰かがコメントを追加できる場合、私は非常に興味がありますか?

于 2015-05-07T16:16:02.827 に答える