1. ホーム
  2. docker

[解決済み] Dockerコンテナで複数のプログラムを実行できますか?

2022-04-24 04:42:35

質問

私は、ユーザーのデスクトップ上で実行することを目的としたアプリケーションをデプロイする点から、Dockerについて理解しようとしています。私のアプリケーションは、単純にflaskのウェブアプリケーションとmongoデータベースです。通常、私は両方をVMにインストールし、ゲストウェブアプリケーションにホストポートを転送します。Dockerを試してみたいのですが、複数のプログラムをどのように使用するのかよくわかりません。ドキュメントにはENTRYPOINTしかないと書いてありますが、Mongoとflaskアプリケーションはどうすればいいのでしょうか?あるいは、別々のコンテナに入れる必要があるのでしょうか。その場合、どのように互いに会話するのでしょうか。また、どのようにしてアプリを簡単に配布できるのでしょうか。

どのように解決するのですか?

ENTRYPOINTは1つだけですが、そのターゲットは通常、必要なだけのプログラムを起動させるスクリプトです。さらに、たとえば スーパービジョン などを使用すると、1つのコンテナ内で複数のサービスを起動することができます。 これは、1つのコンテナ内でmysql、apache、wordpressを動作させているDockerコンテナの例です。 .

例えば、1つのWebアプリケーションで使用するデータベースが1つあるとします。それなら、1つのコンテナで両方を実行する方が簡単でしょう。

複数のアプリケーションで使用される共有データベースがある場合は、データベースを独自のコンテナで実行し、アプリケーションをそれぞれ独自のコンテナで実行する方がよいでしょう。

アプリケーションが異なるコンテナで動作しているときに、互いに通信する方法として少なくとも2つの可能性があります。

  1. 公開されたIPポートを使用し、それを経由して接続する。
  2. 最近のDockerのバージョン サポートリンク .