Docker の基礎

September 22, 2017

コンテナの仮想化とは

Linux コンテナは Linux カーネルの機能によりユーザープロセスを分離する。

f:id:shiro_kochi:2018××××××××:plain:w100:left

プロセステーブルの分離

PID namespace を用いることにより、プロセステーブルを分離する。

f:id:shiro_kochi:2018××××××××:plain:w100:left

ファイルシステムの分離

lxctools や libvirt では Mount Namespace を利用して、ルートディレクトリを、例えば /export/container01/rootfs/ などに設定することにより、コンテナ内から見えないようにする。

f:id:shiro_kochi:2018××××××××:plain:w100:left

Docker は Docker イメージからを用いて、iso イメージの中身を直接見る。

f:id:shiro_kochi:2018××××××××:plain:w100:left

ネットワークの分離

ブリッジを用いて各コンテナの IP アドレスを分離する。

f:id:shiro_kochi:2018××××××××:plain:w100:left

Docker における Thin Provisioning の利用方式

論理デバイスが各コンテナからどのように利用されているか、という情報が /var/lib/docker/devicemapper/metadata/<image ID> に保存される。

f:id:shiro_kochi:2018××××××××:plain:w100:left


 © 2023, Dealing with Ambiguity