2015年2月7日土曜日

lxc-wrapper

最近、dockerの説明で「コンテナ型」とか「差分ディスク」と言うところにフォーカスされていることが多いんですが、それ自身はdockerのベースとなっているlxcでもできることで、dockerのコアではない、と個人的に思っています。ただ、lxcで差分ディスクを利用するのも結構面倒なので、ちょっとしたwrapperを作成しました。なお、ubuntu用なのでubuntu以外では動作しません。

概要説明

lxcでコンテナを作成すると、デフォルトでは「/var/lib/lxc/コンテナ名/rootfs」にシステム一式を保存します。
lxc-wrapperを利用すると、「/var/lib/lxc/images/イメージ名/rootfs」にシステム一式を保存し、「/var/lib/lxc/コンテナ名/diff」に差分を保存するコンテナを作成できます。
1つのイメージから複数コンテナ作成すれば、dockerの時と同様に、差分のみでコンテナを作成できるわけです。

なお、コンテナからイメージも作成することができますが、dockerとは異なり、差分の差分の差分の・・・と言うような構造は取らず、イメージにする時に全部コピーします。

インストール

以下の方法でインストールします。

git clone https://github.com/ccat/lxc-wrapper.git
cd lxc-wrapper
sudo sh ./install.sh

使い方

  • lxcテンプレートからイメージ作成
    sudo lxc-wrapper -m -t テンプレート名 -i イメージ名
    例:sudo lxc-wrapper -m -t ubuntu -i ubuntu_0001
  • コンテナからイメージ作成
    sudo lxc-wrapper -m -n コンテナ名 -i イメージ名
    例:sudo lxc-wrapper -m -n server1 -i server_0001
  • イメージからコンテナ作成
    sudo lxc-wrapper -c -n コンテナ名 -i イメージ名
    例:sudo lxc-wrapper -c -n server2 -i server_0001
  • なお、作成したコンテナは普通にlxcとして動作するため、lxc-start等で起動できます。

    0 件のコメント:

    コメントを投稿