LoginSignup
51
50

More than 5 years have passed since last update.

LXC (Linux Container) を使い超軽量作業環境を手に入れよう

Last updated at Posted at 2013-07-12

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に書き換え
51
50
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
51
50