2017-03-07 26 views
2

これはDockerアーキテクチャです。 enter image description here ドッカーデーモンが必要な理由がわかりません。クライアントは十分です。クライアントは単にUnixソケットを使ってデーモンにアクセスします。それはTCPを使うことができますが、私は通常、クライアントとデーモンが同じマシンにあることに気づきます!それでなぜ2つの別々のエンティティ?
上記のように、クライアントはTCPを使用してデーモンと通信できます。だから、チームで働くのに好ましい方法は何ですか? 1つのデーモンは、チーム全体のための別のサーバー上の各devのクライアントを実行している?あるいは、それぞれの開発者は独自のデーモンプロセスを持っています。Docker Daemonの必要性は何ですか?

+0

あなたの間違いは次のとおりです。「...私が気づくのは、通常、クライアントとデーモンが同じマシン上にあることです!大規模な実動システムでは、これは真実ではありません。 – SiKing

答えて

3

ドッカークライアントはcliのみを提供します。これはaws cliのようにhttp APIラッパーです。

ドッカーデーモンは、aws自体のように、操作全体の背後にある脳です。 docker runコマンドを使用してコンテナを起動すると、ドッカークライアントはそのコマンドをhttp API呼び出しに変換してドッカーデーモンに送信し、Dockerデーモンはその要求を評価し、基礎となるOSと通信し、コンテナをプロビジョニングします。

docker cliはリモートドッカーデーモンに接続でき、tcp IPを使用するようにドッカーデーモンを設定できます。

Q私の考えでは、チームで働くのに好ましい方法は何ですか? 1つのデーモンは、チーム全体のための別のサーバー上の各devのクライアントを実行している?または各デベロッパーにはそれぞれ独自のデーモンがあります。

これはあなた次第ですが、ほとんどの場合、開発者はローカルのドッカーデーモンとクライアントを持ち、画像をdockerfilesで構築しています。ドッカーイメージを共有する必要がある場合は、ローカルドッカーのレジストリを提供するか、公開されたドッカーレジストリを使用できます。このようにして、ドッカーを利用することで、開発者の処分時にまったく同じ開発環境を持つことができます。この開発環境は本番環境に似ています。

+0

ファルハッドは本当です。私が言及したように、クライアントはTCPを使ってデーモンと通信することができます。 Qは私の心の中で、チームで働くための好ましい方法は何ですか? 1つのデーモンは、チーム全体のための別のサーバー上の各devのクライアントを実行している?または各デベロッパーにはそれぞれ独自のデーモンがあります。 –

+0

@ApurvaSingh明確化のおかげで、答えを更新しました。 –

1

Q私の考えでは、チームで働くのに好ましい方法は何ですか? 1つのデーモンは、チーム全体のための別のサーバー上の各devのクライアントを実行している? 、ドッカーとの考え方は、各開発者が再構築し、ローカルで使用することができますコンテナを(Dockerfile)を指定できるようにすることであると:または各devが各DEVは、独自のドッカーデーモンとコンテナと協力して、彼自身の悪魔

を持っていますドッカーが構築するという保証は全く同じイメージを生成します。
または、イメージをプッシュしてドッキングすると、ローカルのドッカーデーモンのインスタンスでイメージを再利用できます。

いずれの場合でも、ドッカーデーモンはサーバー単位であり、つまり、チームが共通のサーバーにアクセスした場合にのみチームを介して共有することを意味します。もしそうでなければ、彼らは彼らのワークステーションにドッカーをインストールすることができます。その場合、それぞれに独自のドッカーデーモンがあります。

関連する問題