名前空間の紹介とLinuxのcgroup

          名前空間の紹介とLinuxのcgroup

                                       著者:殷Zhengjie

著作権:オリジナルの作品は、再版に減少しました!それ以外の場合は、責任を負いません。

 

 

 

 

A .Linux名前空間技術

  名前空間は、核内に配置されている名前空間のいくつかの異なるタイプがあり、すなわち、カーネルレベルで実装Linuxシステムの基礎となる概念であり、各々が同一の容器ドッカードッカーマスタ・プロセスで実行されていると、ホストシステムを共有同じコア。

  互いに空間から単離されたユーザー空間のドッキングウィンドウのホスト内の各コンテナの実行は、各コンテナが実行するために類似した仮想マシンを持っている必要がありますが、容器の技術は、プロセス内の指定されたサービスを実行するためのランタイム環境である、とすることもできプロテクト場所干渉など、現在、主に以下の技術によって達成される容器の隔離空間を実行してファイルシステム空間、サイバースペース、処理空間、のような他のプロセスからホストカーネルに影響を与えます。

1> .MNT名前空間 

  各コンテナは、Ubuntuのは、ホストサーバであることをコンテナとコンテナの使用オペレーティング環境内で実現するために、サービスを開始し、別のユーザー・スペース・ルート・ファイル・システムを持っている必要があります、あなたは内側と内側のコンテナCentOSの動作環境を起動することができますnginxのサービスを開始し、このnginxのランタイム実行環境の使用は、動作環境CentOSのシステムディレクトリであるが、容器の内部ホストが平均実行ディレクトリにコンテナをロックするためにchrootの技術を使用している、ホストのリソースにアクセスすることはできません。

 

2> .IPC名前空間 

  容器(メモリ、キャッシュ、等)データアクセス内の異なる処理を可能にする容器内のプロセス間通信ができるが、容器を横断しないアクセスデータを他の容器。

3> .UTS名前空間 

  UTSシステム識別のための名前空間(UNIXタイムシェアリングシステムは、アーキテクチャの基礎となるの種類として実行中のカーネルバージョン情報の名前を含む)、およびホスト名のドメインのドメイン名を含んでおり、それはホスト名の識別とは無関係に、それ自身のホスト名の識別子を有するように容器上の彼は、コンテナとそのホストシステム。

 

4>.PID Namespace 

  Linux系统中,有一个PID为1的进程(init/systemd)是其他所有进程的父,那么 在每个容器内也要有一个父进程来管理其下属的子进程,那么多个容器的进程通的PID namespace进程隔离(比如PID编号重复、器内的主进程与回收子进程等)。

 

5>.Net Namespace 

  每一个容器都类似于虚拟机一样有自己的网卡,监听端口,TCP/IP协议栈等,Docker使用network namespace启动一个vethX接口,这样你的容器将拥有它自己的桥接ip地址,通常是docker0,而docker0实质就是Linux的虚拟网桥,网桥是在OSI七层模型的数据链路网络设备,通过mac地址对网络进行划分,并且在不同网络直接传递数据。

 

6>.User Namespace 

  各个容器内可能会出现重名的用户和用户组名称,或重复的用户UID或者GID,那么怎隔离各个容器内的用户空间呢?
  User Namespace允许在各个宿主机的各个容器空间内创建相同的用户名以及相同的用户UID和GID,只是会用户的作用范围限制在每个容器内,即A容器和B容器可以有相同的用户名称和ID的账户,但是此用户的有效范围仅是当前容器内,不能访问另外一个容器内的文件系统,即相互隔离,互不影响,永不相见 。

 

二.Linux control groups

1>.

 

2>.

 

3>.

 

4>.

 

5>.

おすすめ

転載: www.cnblogs.com/yinzhengjie/p/12183066.html
おすすめ