2017-06-16 18 views
0

私はthis YouTube video on Dockerを見て22:00スピーカー(ドッカープロダクトマネージャー)は言う:Dockerがマルチテナントをサポートしていないのはなぜですか?

あなたはおそらく 『ドッカーは、マルチテナントをサポートしていません』を考えている...あなたは正しいです! "

実際に与えられた理由は決して説明されていません。だから私は疑問に思っています:彼はそれがどういう意味ですか? Dockerがマルチテナントをサポートしていないのはなぜですか? Googleの「Docker multi-tenancy」なら、あなたは驚くほど何も得られません!

答えて

3

マルチテナントツールで最も想定される主な機能の1つは、各テナント間の分離です。彼らは、お互いの容器やデータを見たり、管理したりしてはなりません。

docker-ceエンジンは、そのままのシステム管理者レベルのツールです。任意のオプションでコンテナを起動できる人は誰でも、ホスト上でルートアクセスできます。 authzプラグインインターフェースに接続するツイストロックのようなサードパーティのツールがありますが、それらは粗いアクセスコントロールしか提供しません。それぞれの人はスタートコンテナやログを見るようなアクティビティの全クラスから許可されるか禁止されます。ユーザーがTLSポートまたはドッカーソケットのいずれかにアクセスできるようにすると、ユーザーは1つのカテゴリに集中します。ドッカーエンジンに接続するユーザーのグループまたは名前空間の概念はありません。

マルチテナンシーの場合、ドッカーはユーザーを定義する方法を追加し、特定のコンテナとボリュームでのみ動作するように許可されている名前空間に配置する必要があります。ホストから任意のファイルシステムをマウントすることができます。 Dockerのエンタープライズ製品であるUCPは、オブジェクト上にラベルを使用してこれらの機能を追加し始めていますが、これが完全なマルチテナントソリューションを提供するかどうかを評価する時間はありませんでした。

2

他人が私よりもうまく答える方法を知っているかもしれないという厄介な疑問。しかしここにそれは行く。

のは、マルチテナントsource)のこの定義を見てみましょう:

マルチテナントは、ソフトウェア・アプリケーションの単一のインスタンスを複数の顧客にサービスを提供するアーキテクチャです。

この定義にDockerを配置するのは本当に難しいです。インスタンスとアプリケーションの両方であると主張することができます。それが混乱の原因です。 デーモンコンテナアプリケーション

は、3つの異なる部分にドッカーを破るのをしてみましょう。

デーモンは、ホストにインストールされ、Docker コンテナを実行します。デーモンは実際には同じシステム上の私の多くのユーザーが使用できるので、マルチテナントをサポートしています。それぞれのユーザーは~/.dockerに独自の構成を持っています。我々はアプリケーションと呼びます単一のプロセスを、実行

ドッカーコンテナ。

アプリケーションは何でもかまいません。この例では、Docker コンテナがフォーラムなどのWebアプリケーションを実行しているとします。このフォーラムでは、ユーザーは自分の名前でサインインして投稿することができます。 シングルインスタンスで、複数の顧客にサービスを提供しています。したがって、マルチテナントをサポートします。

私たちがスキップしたのはコンテナで、マルチテナントをサポートしているかどうかは疑問です。そして、これはあなたの質問に対する答えがあると私が思うところです。

Dockerコンテナが仮想マシンではないことに注意してください。docker run [IMAGE]を使用すると、新しいコンテナインスタンスが作成されます。これらのインスタンスは一過性で不変です。彼らは単一のプロセスを実行し、プロセスが存在するとすぐに終了します。しかし、複数のユーザーがそれらに接続してコマンドを同時に実行するようには設計されていません。これがマルチテナントとなるでしょう。代わりに、Dockerコンテナはプロセスの単なる実行環境です。

概念的には、echo Hellodocker run echo Helloはこの例では同じものです。彼らはどちらも新しい実行環境(プロセス対コンテナ)でコマンドを実行し、いずれもマルチテナントをサポートしていません。

この回答が読めて、あなたの質問に答えることを願っています。私が明らかにしなければならない部分があれば教えてください。

関連する問題