2016-11-15 7 views
0

私のアプリケーションスタックをDockerに移行する予定です。すべてのサービスの接続にSSLターミネーションのために使用されているMySQL/MariaDBデータベースでDockerコンテナを作成する

  • HAProxy、(HTTPと生のTCP接続を)、および転送以下のサービスへのトラフィック:私は現在使用しているサービスを記述してみましょう。
  • Nginxは、更新や一部の情報ページなどの静的ファイルを扱います。
  • Node.jsメインアプリケーションを実行します。
  • MySQL(MariaDB)、データベースはすべてのアプリケーションで使用され、共有されています。

私の質問はデータベースについてです。

この場合、MariaDBを実行する適切な方法は何ですか?

  1. 他のサービスと一緒に、自分のコンテナにインストールして実行しますか?
  2. 別のコンテナでofficial imageを実行し、Dockerのrunコマンドの--linkオプションを使用して自分のコンテナにリンクしますか?

最初のオプションには何らかの欠点がありますか?

TeamSpeak docker containerは2番目のオプションを使用しているため、私のケースではデータベースを正しく実行する方法について疑問に思っていましたが、私は自分のイメージの中にすべてのサービスをパッケージ化する傾向が特にあります。

+0

あなたのケースに合った 'docker-compose'を見てください。 – Rao

+0

Dockerがスタックの利点である理由を説明してください。 (私はDockerとは言い合いませんが、あなたのニーズに答える答えを得ることを望んでいます)。 –

答えて

5

ドッカーの哲学:アプリケーションをmicroservicesに分割し、それぞれmicroserviceのコンテナを使用します。

あなたのケースでは、MariaDBコンテナを使用することをお勧めします。official(Library)Imageを使用すると、更新管理が簡単になりますが、カスタム画像を自由に使用できます。

HAProxyコンテナ、nginxコンテナおよびnodejsコンテナ。

この方法でアプリケーションをmicroservicesに分割し、隔離された環境で簡単にアップグレード、管理、トラブルシューティングを行うことができます。

ドッカーを介してエンドユーザーにアプリケーションを提供することを考えている場合は、簡単なdocker-composeファイルを使用して、必要なコンテナを簡単に起動できます。

関連する問題