Vagrantをvirtualboxからlxcに切り替えて超軽量仮想環境を手に入れようもどうぞ。
arch wiki見るとわかりやすいかと。
ubuntuにlxcを入れてubuntuとcentosを動かしてみた。とにかく動作が早い。
lxc とは
- chroot環境に、(virtualboxみたいに)IPが個別に割り振られたような仮想環境。
- オーバーヘッドがどの仮想環境よりも少ない。
- スナップショット機能、ライブマイグレーション機能がない(終了させてからフルバックアップは可能)
- dockerはx86_64のみ対応だが、lxcはi386にも対応。
手順
1.lxc のインストール
$ sudo apt-get install lxc
2.ubuntu のインストール
$ sudo MIRROR=http://jp.archive.ubuntu.com/ubuntu lxc-create -t ubuntu -n ubuntu0
# -r でリリースバージョンを指定できる。詳細は /usr/share/lxc/templates/lxc-ubuntu 内を参照
$ sudo lxc-create -n gitlab -t ubuntu -- -r precise
3.centosを入れる
lxcのtemplatesにcentosが含まれていないため、hagix9さんが作ってくれたtemplateを使用する。
- id:pass=root:password
$ sudo apt-get install -y curl yum
$ sudo wget -O /usr/share/lxc/templates/lxc-centos \
https://gist.github.com/hagix9/3514296/raw/7f6bb4e291fad1dad59a49a5c02f78642bb99a45/lxc-centos
$ sudo chmod 755 /usr/share/lxc/templates/lxc-centos
$ sudo MIRROR=http://ftp.jaist.ac.jp/pub/Linux/CentOS/6.4/os/x86_64/ lxc-create -t centos -n centos0
コンテナの一覧
$ sudo lxc-list
※sudoしないとRUNNINGのものが表示されません。
使い方
起動
$ sudo lxc-start -n ubuntu0
終了
$ sudo lxc-stop -n ubuntu0
コンソールに接続
$ sudo lxc-console -n ubuntu0
再起動
$ sudo lxc-shutdown -n ubuntu0 -r
停止
$ sudo lxc-shutdown -n ubuntu0
強制終了
$ sudo lxc-stop -n ubuntu0
削除
$ sudo lxc-destroy -n ubuntu0
バックアップ
$ sudo lxc-backup ubuntu0 1
※ "/var/lib/lxc/ubuntu0/rootfs.backup1" にバックアップされる。
バックアップからのリストア
$ sudo lxc-restore ubuntu0 1
ホスト起動・停止時にコンテナを自動起動・停止する設定
$ sudo ln -s /var/lib/lxc/ubuntu0/config /etc/lxc/auto/ubuntu0.conf
コンテナの場所
- /var/lib/lxc/<コンテナ名>/
コンテナのIPアドレス設定
- /var/lib/lxc/<コンテナ名>/config
lxc.network.ipv4 = 10.0.3.2
lxc.network.ipv4.gateway = 10.0.3.1
コンテナのclone(自動)
$ sudo lxc-clone -o ubuntu0 -n ubuntu1
コンテナのclone(手動)
$ sudo cp -a /var/lib/lxc/ubuntu{0,1}/
$ sudo vim /var/lib/lxc/ubuntu1/
lxc.network.hwaddr = 00:16:3e:d0:5c:d0 ←これを重複しないものに書き換える
lxc.utsname = ubuntu0 ←ubuntu1に書き換え
lxc.rootfs = /var/lib/lxc/ubuntu0/rootfs ←ubuntu1に書き換え
lxc.mount = /var/lib/lxc/ubuntu0/fstab ←ubuntu1に書き換え