ようへいの日々精進XP

よかろうもん

Ubuntu 12.10 で CentOS 6 の LXC テンプレートを試す一部始終

要件

  • Ubuntu 12.10 amd64CentOS 6.4 の LXC テンプレートを試す
  • とりあえず CentOS 6 が起動を確認する

環境

きっかけ

LXC とは

  • Linux カーネルの Control Group や Namespace という機能を使って、ホスト OS とは隔離された環境を作るツール
  • 実態は chroot 環境
  • カーネルをそのまま使うため高速起動、終了が動作する
  • 特に基盤自体はハードウェアなサーバーでも仮想サーバーでも構築することが出来る
  • こんなイメージかなと...

 f:id:inokara:20130331155010p:plain

手順

テンプレートのダウンロード

テンプレートは /usr/share/lxc/templates/ 以下に保存されている

sudo wget -O /usr/share/lxc/templates/lxc-centos \
https://gist.github.com/raw/3514296/b5c055108b4019fae8ea4fff4c58edda46ffe079/lxc-centos

テンプレートの権限修正

cd /usr/share/lxc/templates/
sudo chmod 755 lxc-centos

テンプレートの修正

ダウンロードしたテンプレートをそのまま使うと

Failed to download centos release rpm

となり CentOS のリリース RPM のダウンロードに失敗してしまう。
以下のようにとりあえず直書きして修正。

RELEASE_URL="http://mirror.fairway.ne.jp/centos/6.4/os/x86_64/Packages/centos-release-6-4.el6.centos.10.x86_64.rpm"

curl と yum のインストール

sudo apt-get install curl yum

コンテナを作成

sudo lxc-create -t centos -n inokappa

コンテナを起動

sudo lxc-start -n inokappa

コンテナにログイン

ユーザー名:root、パスワード:password にてログイン
f:id:inokara:20130331160230p:plain

コンテナの日付を調整

 cp -rf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

f:id:inokara:20130331171541p:plain

一応、ネットワークの疎通確認

既に IP も設定されており、外部へのアクセスも可能。
f:id:inokara:20130331172123p:plain

ホスト OS からコンテナへの疎通確認

コンテナの IP アドレスに対して ssh でアクセスすることも可能。f:id:inokara:20130331174227p:plain

コンテナの停止

sudo lxc-stop -n inokappa

まとめ

  • 知らないことが多すぎると反省...
  • とは言え、意外に簡単にインストールが出来た
  • 起動や停止はとても速くて驚いた
  • ホスト OS からコンテナへの通信はデフォルト許可されていた
  • lxc-shutdown ではコンテナをシャットダウン出来なかったのではなぜだろう...