コンテナの仮想化とは
Linux コンテナは Linux カーネルの機能によりユーザープロセスを分離する。
プロセステーブルの分離
PID namespace を用いることにより、プロセステーブルを分離する。
ファイルシステムの分離
lxctools や libvirt では Mount Namespace を利用して、ルートディレクトリを、例えば /export/container01/rootfs/
などに設定することにより、コンテナ内から見えないようにする。
Docker は Docker イメージからを用いて、iso イメージの中身を直接見る。
ネットワークの分離
ブリッジを用いて各コンテナの IP アドレスを分離する。
Docker における Thin Provisioning の利用方式
論理デバイスが各コンテナからどのように利用されているか、という情報が /var/lib/docker/devicemapper/metadata/<image ID>
に保存される。