#17 Runc では、ホスト OS とコンテナで同じ共有されたカーネルを使用している。
で、その中でものを分離するのに使われるのが namespace
これによって namespace 内から namespace 外のものが基本的に見えなくなるため環境が分離される
NS にはいくつかの種類があり、分離しているリソースが異なっている
一つずつ見ていくと、
PID name space は名前空間を分けることで同じプロセス ID のプロセスが存在できるようにする
MNT name space はファイルシステムのマウントポイントを他の name space から見えないようにしてファイルシステムのツリーを完全に分離する
network name space は IP アドレス、 NIC などの network stack を分離する
IPC name space はプロセス間通信で使用される共有メモリを、分離する
UTS name space は同じホストで複数の host name, domain の利用を可能にする
他にも色々ある。
詳しくはググってみてください
#21 では、実際にホスト側のシェル、コンテナ内のシェルで実際に name space を見てみる、
ここでは PID name space を見てみる
一番上がホスト側、下 2 つがそれぞれ別のコンテナ内で PID を確認した結果
赤字の部分を見てわかるが、すべて別々の名前空間内で実行されていることがわかる