概要
こちらの記事を読みました。普段使っているDockerが、内部でどのようなことを行っているのかを、少しイメージできるようになりました。
感想
コンテナ の説明は、仮想マシン と比較して、以下のように説明されることが多いと思います。
仮想マシン は、ハイパーバイザーによって作成された仮想的なハードウェア環境。コンテナ は、ホストOSのリソースを隔離、制限したプロセス。
「コンテナ技術入門 - 仮想化との違いを知り、要素技術を触って学ぼう」では、手を動かしながら、コンテナ が実際に隔離されたプロセスであることを確認することができます。
以下のようなことを、VirtualBoxとVagrantで作った仮想環境内で試します。
- Namespace でプロセスを隔離する
- cgroup でプロセスに対してリソースを制限する
- Capability で、プロセスに必要な権限だけを許可する
- chroot/pivot_rootで、プロセスのルートファイルシステムを隔離する
実際に手を動かして挙動を確認できるので、とても良かったです。