Docker のコンテナーでは、1 つのアプリケーションだけを実行できるわけではありません。リソースが十分であれば、複数のアプリケーションをコンテナー内で実行できます。ただし、コンテナー内で複数のアプリケーションを実行すると、本来の仕様に反する多くの欠点があります。コンテナは軽量である必要があるため、アプリケーションをまとめて配置すると、1 つのプロセスで問題が発生し、すべてのプロセスにアクセスできなくなる可能性があります。
このチュートリアルの動作環境: linux7.3 システム、docker バージョン 19.03、Dell G3 コンピューター。
コンテナ内で複数のアプリケーションを実行できます。十分なリソースがある限り実行できますが、これは本来の目的に反します。軽量化と分離を実現するには、アプリケーションをまとめることは意味がありません。
複数のプロセスを 1 つのコンテナーにデプロイすることには、多くの欠点があります。たとえば、あるプロセスのイメージを更新すると他のプロセスも強制的に再起動され、あるプロセスで問題が発生してコンテナがハングすると、すべてのプロセスにアクセスできなくなります。
複数のプログラムを単一の Docker コンテナーで直接実行することはお勧めできません。
2017 年 10 月 18 日の Docker による Kubernetes の公式サポートを分岐点として考えると、Kubernetes がコンテナ オーケストレーションの戦いで最終的な勝利を収めてから 1 年以上が経過しました。まずは古典的な Kubernetes アーキテクチャ図を見てみましょう:
#ご覧のとおり、Kubernetes では、作成、スケジューリング、管理のための最小のデプロイメント単位はポッドではなく、ポッドです。容器。コンテナ化テクノロジーを使用しないシナリオでは、同じポッド内のコンテナが同じ物理ホストまたは仮想ホスト上で実行され、これらのコンテナ間でデータと通信を簡単に共有でき、個々のコンテナを個別に再構築および再デプロイできます。
単一の原則に従い、コンテナーは 1 つのメイン プロセスのみを実行します。
複数のプロセスがコンテナーにデプロイされますが、これには多くの欠点があります。たとえば、あるプロセスのイメージを更新すると他のプロセスも強制的に再起動され、あるプロセスで問題が発生してコンテナがハングすると、すべてのプロセスにアクセスできなくなります。
公式ウェブサイトが提唱する原則に基づいています。
コンテナ = アプリケーションが依存する実行環境
仮想マシンのように多数のプロセスをまとめてデプロイするのではありません。
推奨される学習: 「docker ビデオ チュートリアル 」
以上がDocker コンテナーは 1 つのアプリケーションのみを実行できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。