基礎となる技術は、コンテナを実装します

プロセス間通信:

  1.socket
  2.共有メモリ
  3.メッセージキューのコンテナの特性をより良く理解するために、コンテナ我々は、基礎となる実装技術について説明します。cgroupと名前空間には、二つの技術の中で最も重要です。リソース、リソースの名前空間の分離の限界をのcgroup


cgroup:
Control Groupのcgroupのフルネーム。
Linuxオペレーティングシステムは、CPU、メモリ、および制限IOリソースを使用することにより、セットのcgroupプロセスすることができます。
それのようなエンドの外観でのcgroup?私たちは、中/ SYS / FS / cgroup内でそれを見つけることができます。またはコンテナを開始し、説明するために例を使用し、512Mにメモリを設定
/ SYS / FS / cgroup内/メモリにディレクトリ、Linuxは血管長のID名に各容器用のcgroupのディレクトリを作成します。メモリの使用制限:   ドッカーコンテナは、-cまたは-cpu-共有CPUの重みを使用することによって提供されてもよいです。指定しない場合、デフォルトは1024です。異なるメモリ制限と、設定しない-c CPUシェアCPUリソースの絶対数が、相対加重値によって。最終的にCPUリソースに割り当てられたコンテナは、すべてのコンテナのCPUシェア比率の合計を占め、そのCPUシェアに依存します。
 



言い換えれば、容器は、優先CPUシェアをCPUを用いて提供することができます。
そのようなホストに2つの容器を出発物質として:
ドッカーはRUN "ContainerA" 1024のhttpd -C -name
ドッカー-name RUN "containerB"のhttpd 512 -C
、ContainerA CPUシェア1024倍containerBあります。2つの容器は、CPUリソースを必要とする場合、containerAはの多くのCPU containerBとして二回取得することができます。
特に注目すべきなのは量分布に応じて、このCPUが唯一のストレスの多いCPUリソースに発生することです。containerAアイドル状態ならば、その後、CPUリソースを最大限に活用するためには、container_Bは、利用可能なすべてのCPUに割り当てることができます。CPUのセットはここで見つけることができます
 

[ルート@ ken1〜]#猫/sys/fs/cgroup/cpu/docker/a1f00b2682796ec9d0c64c8356645ecaeba95c622b4d306124c01d17fd9e5829/cpu.shares 
512

名前空間:
   各コンテナに、私たちは自分自身のコンテナのように見えるファイルシステム、ネットワークカードやその他のリソースを、見ることができます。カードを取り、各コンテナは、ホスト上の場合でも、1つの物理NICのみ、彼らは別のカードを持っていると思うだろう。これは、コンテナよりスタンドアロンコンピュータのようになりますこれは、非常に良いです。
Linuxの技術は、この名前空間を実現するための方法です。名前空間は、グローバルに一意なリソースのホストを管理し、唯一のあなたはそれを使用する各コンテナを可能にします。換言すれば、名前空間は、コンテナリソース間の分離を提供します。
Linuxは、リソースの6種類に対応し、6つの名前空間を使用しています。私たちは、マウント、UTS、IPC、PID、議論していましたネットワーク以下、およびユーザーを。名前空間マウントマウントは、コンテナのルックスは、ファイルシステム全体を持たせた名前空間。独自のコンテナ/ディレクトリを持っている、あなたは、マウントとumountコマンドを実行することができます。もちろん、私たちは、これらのアクションは、ホストや他のコンテナには影響しませんだけで、現在のコンテナに反映知っています。UTSは、名前空間、そのコンテナは、独自のホスト名を持っているので、単純に、UTS名前空間を置きます。デフォルトでは、ホスト名のコンテナはその短いIDである、あなたは--hostnameまたは-hでパラメータを設定することができます。名前空間IPC IPC名前空間その容器は、プロセス間通信を実現するために、自身の共有メモリとセマフォ(セマフォ)の間であり、ホストIPCおよび他のコンテナと混合しないように。PID名前空間
 



 


 


 

コンテナは、ホスト内のプロセスとして実行されます。容器は、ホストPID、PID =処理容器1内のプロセスに対応するプロセスのPIDとは異なるコースないホストシステムDプロセスです。言い換えれば、コンテナはPIDの独自の独立したセットがあり、これは、PID名前空間が提供する機能です。ネームスペースネットワーク、ネットワーク名前空間は、そのための容器は、独自の個別のネットワーク・カード、IPルーティングおよびその他のリソースを持っています。名前空間のユーザーユーザーの名前空間は、ホストユーザーはコンテナが作成された見ることができない、コンテナは、独自のユーザーを管理することができます。
 


 

 

おすすめ

転載: www.cnblogs.com/twoo/p/11815599.html