2016-01-15 20 views
21

最近ドッカーの勉強が始まりました。その大部分は、ネームスペースとcgroupを使用してLinuxカーネルによって行われていたようです。私は混乱発見していますcgroupsとnamespaceの違い

いくつかあります:

  1. 名前空間とのcgroupの違いは何ですか?彼らが扱うさまざまなユースケースは何ですか?

  2. 人気を得るために、これを上に実装したドッカーは何ですか?

  3. これらの機能の内部とその実装方法について知りたいと思います。これら二つの概念について

+0

がhttps://en.wikipedia.org/wiki/Cgroupsとhttps://en.wikipedia.org/wiki/Cgroups#Namespace_isolationを参照してください詳細については

訪問 – gavv

答えて

36

適切なリンクがPR 14307に固定されています:

フードの下では、ドッカーは、次のコンポーネント上に構築されています。

cgroupsnamespaces機能Linuxカーネル

ウィットH:

  • のcgroup:制御グループは、特殊な振る舞いを持つ階層のグループに、タスク、およびすべての彼らの未来の子供たちの集約/分割・セットのためのメカニズムを提供します。
  • 名前空間:グローバルシステムリソースを抽象的に包括するため、グローバルリソースの独自の分離インスタンスを持つ名前空間内のプロセスに表示されます。要するに

  • あなたが使用することができますどのくらいのcgroup =限界。
  • 名前空間あなたが見る(したがって使用)できるか =限界

Jérôme Petazzoniによる "Anatomy of a Container: Namespaces, cgroups & Some Filesystem Magic" で詳細を参照してください。

のcgroupはリソース計測を伴う、限定:

  • のI/O
  • ネットワーク

名前空間は、システムの独自のビューを有する方法を提供メモリ

  • CPU
  • ブロックを

    Mul tiple名前空間:

  • 0

    のcgroupは、名前空間が他の部分にプロセスのグループの表示を制限しながら、をファイルシステムにCPU、メモリ、ネットワークI/Oまたはアクセスをすることができ、プロセスまたはこれらのリソースを使用することができる一連のプロセスのリソースを制限しますシステムのHow Linux Kernel Cgroups And Namespaces Made Modern Containers Possible