Ubuntu で LXC を使ってみました。
LXC は "LinuX Containers" の略で、Linux の仮想化技術の1つです。1つのセンターホストの上で複数の Linux システム(コンテナ)を走らせる、というものです。コンテナなので、いわゆる VM(Virtual Machines) とは異なり、個別のプロセスとネットワーク空間を作り出す仮想環境です。なお Ubuntu 14.04 の 64bit 版を前提として以下を記載します(いつもの CentOS6 環境だとなぜか上手くいきませんでした):
導入は簡単。apt-get コマンド一発で LXC を導入します:
導入できたら中身を一度確認してみます。まず用意されているテンプレートの一覧が /usr/share/lxc/templates/ にあるのでその一覧を確認します(青字が出力結果、これだけのテンプレートが用意されています):
では今回は Plamo テンプレート(lxc-plamo)を使って、p01 という名称で Plamo Linux コンテナを作成してみます:
コマンドが完了するまでしばらくかかりますが、無事に完了したようです(root ユーザーのパスワードが root で、すぐに変更しろ、というメッセージが表示されています)。 作成されたコンテナのルートディレクトリは /var/lib/lxc/p01/rootfs/ 以下に作成されています(p01 はコンテナ名):
ではこの Plamo Linux のコンテナを実際に起動してみましょう。名前を指定して、デーモンモードで起動して、コンソールに接続します:
接続できました!ここで root ユーザーで(パスワード root で)ログインし、とりあえずはパスワードを変更しておきます:
で、ここからはコンテナ上に展開された Plamo Linux を1サーバーのように使うことができるようになります:
元の(Ubuntu の)コンソールに戻るには Ctrl+A を押し、続けて Q を押します:
LXC は "LinuX Containers" の略で、Linux の仮想化技術の1つです。1つのセンターホストの上で複数の Linux システム(コンテナ)を走らせる、というものです。コンテナなので、いわゆる VM(Virtual Machines) とは異なり、個別のプロセスとネットワーク空間を作り出す仮想環境です。なお Ubuntu 14.04 の 64bit 版を前提として以下を記載します(いつもの CentOS6 環境だとなぜか上手くいきませんでした):
導入は簡単。apt-get コマンド一発で LXC を導入します:
$ sudo apt-get install lxc
導入できたら中身を一度確認してみます。まず用意されているテンプレートの一覧が /usr/share/lxc/templates/ にあるのでその一覧を確認します(青字が出力結果、これだけのテンプレートが用意されています):
$ ls /usr/share/lxc/templates/
lxc-alpine lxc-centos lxc-fedora lxc-oracle lxc-ubuntu-cloud
lxc-altlinux lxc-cirros lxc-gentoo lxc-plamo
lxc-archlinux lxc-debian lxc-openmandriva lxc-sshd
lxc-busybox lxc-download lxc-opensuse lxc-ubuntu
では今回は Plamo テンプレート(lxc-plamo)を使って、p01 という名称で Plamo Linux コンテナを作成してみます:
$ sudo lxc-create -t plamo -n p01
:
:
:
morse-2.1-x86_64-P1 のインストール中
PACKAGE DESCRIPTION:
qrq-0.1.4-x86_64-P1 のインストール中
PACKAGE DESCRIPTION:
Copy /var/cache/lxc/rootfs-plamo-5.x-x86_64 to /var/lib/lxc/p01/rootfs...
Copying /var/cache/lxc/rootfs-plamo-5.x-x86_64 to /var/lib/lxc/p01/rootfs...
patching file /var/lib/lxc/p01/rootfs/etc/inittab
Setting root password to 'root'...
Please change root password!
コマンドが完了するまでしばらくかかりますが、無事に完了したようです(root ユーザーのパスワードが root で、すぐに変更しろ、というメッセージが表示されています)。 作成されたコンテナのルートディレクトリは /var/lib/lxc/p01/rootfs/ 以下に作成されています(p01 はコンテナ名):
$ ls /var/lib/lxc/p01/rootfs/
bin cdrom etc home lib64 mnt root sbin tmp var
boot dev etc-incoming lib media proc run sys usr
ではこの Plamo Linux のコンテナを実際に起動してみましょう。名前を指定して、デーモンモードで起動して、コンソールに接続します:
$ sudo lxc-start -n p01 -d $ sudo lxc-console -n p01 Connected to tty 1 Type to exit the console, to enter Ctrl+a itself Welcome to Linux 3.13.0-85-generic. p01 login:
接続できました!ここで root ユーザーで(パスワード root で)ログインし、とりあえずはパスワードを変更しておきます:
p01 login: root (ユーザー名は root) Password: (パスワードは root) root@p01:~# passwd Enter new UNIX password: (新パスワードを入力) Retype new UNIX password: (同じ新パスワードを入力) passwd: password updated successfully
で、ここからはコンテナ上に展開された Plamo Linux を1サーバーのように使うことができるようになります:
root@p01:~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/dm-1 913G 16G 851G 2% /
none 100K 0 100K 0% /dev
/media 5.8G 0 5.8G 0% /media
/tmp 5.8G 0 5.8G 0% /tmp
元の(Ubuntu の)コンソールに戻るには Ctrl+A を押し、続けて Q を押します:
root@p01:~# exit (Plamo Linux から普通にログアウト) logout Welcome to Linux 3.13.0-85-generic. p01 login: (ここで Ctrl+A,Q)
$ (Ubuntu のコマンドプロンプトへ戻った)

コメント