Open16

Docker

tomokitomoki

chrootとpivot_root ✅

  • rootディレクトリと見立てて、上の階層は見えないようにして隔離する

OverlayFS ✅

  • dockerfileに記述した通りのファイル構造を組み立てる。ファイルをMergeするようにしている。

Namespace

  • カーネルリソースの隔離

cgroup ✅

  • CPUやMemoryなどのリソース制限をかける

Capability

  • 権限制限
tomokitomoki

自分以外の実行中プロセスを含めた 全てのプロセス一覧を確認

ps aux
tomokitomoki

procと呼ばれるプロセスが稼働するための仮想ファイルシステムです。ホストOS上の/procと先ほど作ったコンテナ用の/procをマッピングしています。

tomokitomoki

現在使っているttyを作成しコンテナ用のttyと紐づけています

tomokitomoki

pid
ホストからはコンテナのプロセスが見える。
親から子のプロセスは見える。子から親のプロセスは見えない。

tomokitomoki
# mkdir /var/run/netns
# touch /var/run/netns/namespace1
# mount --bind /proc/self/ns/net /var/run/netns/namespace1

or 

# ln -s /proc/$$/ns/net /var/run/netns/symlink