ラベル LXC の投稿を表示しています。 すべての投稿を表示
ラベル LXC の投稿を表示しています。 すべての投稿を表示

2012年11月8日木曜日

lxc-centos

Ubuntu 上で、CentOS6 用の LXC テンプレート (lxc-centos) を試してみます。

■ テンプレートをダウンロードする。
■ (12.04 LTS の場合は、/usr/lib/lxc/templates/lxc 以下に保存すること。)
$ sudo wget -O /usr/share/lxc/templates/lxc-centos \
https://gist.github.com/raw/3514296/b5c055108b4019fae8ea4fff4c58edda46ffe079/lxc-centos

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

■ curl と yum が必要なので、パッケージをインストールする。
$ sudo apt-get install curl yum

■ コンテナを作成
$ sudo lxc-create -t centos -n co1

■ コンテナを起動
$ sudo lxc-start -n co1

■ コンテナに root/password でログイン

■ パスワードの設定
@co1# passwd

■ ネットワークを停止
@co1# service network stop

■ ネットワークの設定
@co1# cat <<'__END__' >/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
NM_CONTROLLED=no
NOZEROCONF=yes
IPADDR=10.0.3.111
PREFIX=24
GATEWAY=10.0.3.1
DNS1=10.0.3.1
__END__

■ ネットワーク設定の反映
@co1# service network start

■ パッケージ更新
@co1# yum update -y

■ タイムゾーンの確認
@co1# date
Thu Nov  8 03:08:21 EST 2012

■ タイムゾーンの設定 (JST)
@co1# cp -p /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

■ タイムゾーンの確認 (JST になっていることを確認)
@co1# date
Thu Nov  8 17:09:26 JST 2012



参考

2012年10月22日月曜日

Ubuntu Server 12.04 LTS + LXC + X (xrdp + Ratpoison)

Ubuntu Server 12.04 LTS 上動作す LXC で、X を起動します。
xrdp と Ratpoison を使用します。


■ LXC をインストール
$ sudo apt-get install lxc

■ hosts ファイルに作成するコンテナの行を追加
$ sudo vi /etc/hosts
# lxc hosts
10.0.3.101      pp1.local pp1
10.0.3.102      qq1.local qq1
__END__

■ hosts ファイルの変更を dnsmasq 反映するために再起動
$ sudo initctl restart lxc-net

■ Ubuntu 12.04 を作成
$ sudo lxc-create -t ubuntu -n pp1 -- -r precise

■ Ubuntu 12.10 を作成
$ sudo lxc-create -t ubuntu -n qq1 -- -r quantal


以下、pp1 の場合で説明します。
pp1 での操作は、プロンプトを「@pp$」で示します。

$ sudo lxc-start -n pp1

■ pp1 に ubuntu/ubuntu でログイン

■ パスワードの設定
@pp1$ passwd

■ DHCP で取得したアドレスを開放
@pp1$ sudo ifdown -v eth0

■ ネットワークの設定
@pp1$ sudo vi /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
  address 10.0.3.101
  netmask 255.255.255.0
  gateway 10.0.3.1
  dns-nameservers 10.0.3.1
  dns-search local
__END__

■ ネットワーク設定の反映
@pp1$ sudo ifup -v eth0

■ パッケージ更新
@pp1$ sudo apt-get update && sudo apt-get dist-upgrade -y

■ タイムゾーンの設定
@pp1$ sudo dpkg-reconfigure tzdata
Asia/Tokyo


(作成中...)

参考

2012年6月8日金曜日

Ubuntu 12.04 で LXC

Ubuntu 12.04 では、コンテナ (LXC) が簡単に扱えます。

インストール

$ sudo apt-get install lxc


基本事項
  • lxc-* コマンドの多くは、-n オプションでコンテナ名を指定します。
  • テンプレートは、"/usr/lib/lxc/templates/lxc-テンプレート名" にある。(Ubuntu 12.04 LTS)
  • テンプレートは、"/usr/share/lxc/templates/lxc-テンプレート名" にある。(Ubuntu 12.10)
  • コンテナの設定は、"/var/lib/lxc/コンテナ名/config" 以下に保存される。
  • ファイルシステムは、"/var/lib/lxc/コンテナ名/rootfs" 以下に保存される。
  • コンテナ作成時に使用するキャッシュ イメージは、 "/var/cache/lxc" 以下に保存される。

lxc-* コマンド
  • lxc-create コマンドのヘルプを表示
    $ lxc-create -t TEMPLATE -h
        ※ テンプレート名は、ubuntu, fedora, debian 等
  • コンテナの作成 (Ubuntu ホストと同じリリース, Login: ubuntu/ubuntu)
    $ sudo lxc-create -t ubuntu -n CONTAINER
  • コンテナの作成 (Ubuntu Lucid,  Login: ubuntu/ubuntu)
    $ sudo lxc-create -t ubuntu -n CONTAINER -- -r lucid
  • ubuntu テンプレートでキャッシュ イメージ を再作成するには、-F オプションを使用
    $ sudo lxc-create -t ubuntu -n CONTAINER -- -F
  • コンテナの作成 (Fedora, Login: root/root)
    $sudo apt-get install yum (yum コマンドが必要)
    $ sudo lxc-create -t fedora -n CONTAINER
  • コンテナの作成 (Debian, Login: root/root)
    $ sudo lxc-create -t debian -n CONTAINER
  • コンテナの一覧
    $ sudo lxc-list
  • コンテナの起動
    $ sudo lxc-start -n CONTAINER [-d]
        -d オプション指定でコンソールに接続しない
  • コンテナの起動 (設定 /var/lib/lxc/CONTAINER/config の上書き)
    $ sudo lxc-start -n CONTAINER -s lxc.network.link=br0
        -s KEY=VALUE で上書き (例では、lxc.network.link を br0)
  • コンソールに接続 (Ctrl-a q で切断)
    $ sudo lxc-console -n CONTAINER
  • コンテナの再起動
    $ sudo lxc-shutdown -n CONTAINER -r
  • コンテナの停止
    $ sudo lxc-shutdown -n CONTAINER
  • コンテナの強制終了
    $ sudo lxc-stop -n CONTAINER
  • コンテナの削除
    $ sudo lxc-destroy -n CONTAINER
  • コンテナのバックアップ (バックアップ番号 = 1)
    $ sudo lxc-backup CONTAINER 1
        ※ "/var/lib/lxc/CONTAINER/rootfs.backup#" にバックアップされる
  • バックアップからのリストア (バックアップ番号 = 1)
    $ sudo lxc-restore CONTAINER 1
  •  ホスト起動・停止時にコンテナを自動起動・停止する設定
    $ sudo ln -s /var/lib/lxc/CONTAINER/config /etc/lxc/auto/CONTAINER.conf


ネットワーク

"/etc/default/lxc" でデフォルトで作成されるブリッジ インタフェース (lxcbr0) の設定がされています。
"/usr/share/doc/lxc/examples/lxc-*.conf" にネットワーク設定の例があります。
コンテナの設定 "/var/lib/lxc/コンテナ名/config" を例を参考に変更してネットワーク設定を変更できます。
デフォルトの状態では、コンテナの eth0 は、ブリッジ インタフェース (lxcbr0) とブリッジ接続します。

外部とコンテナとが直接通信するためには、ホストにブリッジ インタフェース (br0) を作り、ホストの物理インタフェース (eth0) をブリッジに参加させます。そして、br0 とコンテナの eth0 をブリッジ接続します。

VMware ESXi で動作している仮想マシンで LXC を使用する場合の注意点として、コンテナへ直接接続できるようにするためには、仮想スイッチかポート グループ レベルでの無差別モードを有効にする必要があります。

以下の例では、ホストにブリッジ インタフェース (br0) を作り、ホストの物理インタフェース eth0 をブリッジに参加させます。コンテナは br0 とブリッジ接続するようにします。これで、ホストの物理インタフェース eth0 が接続するネットワーク セグメントにコンテナの eth0 が直接接続する形態になります。


■ ブリッジ br0 の設定
$ sudo vi /etc/network/interfaces

$ cat /etc/network/interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual

auto br0
iface br0 inet static
  address 192.168.0.101
  netmask 255.255.255.0
  gateway 192.168.0.254
  dns-nameservers 8.8.8.8 8.8.4.4
  bridge_ports eth0
  bridge_stp off

■ ネットワーク設定を反映
$ sudo service networking restart

■ 既存のコンテナの設定を変更
$ sudo sed -i /var/lib/lxc/CONTAINER/config -e 's/=lxcbr0$/=br0/'

■ 新規に作成するコンテナの設定を変更
$ sudo sed -i -e 's/^\(lxc.network.link=\).*/#&\n\1br0/' /etc/lxc/lxc.conf

■ 起動時に lxcbr0 を作成しない設定
$ sudo sed -i -e 's/^\(USE_LXC_BRIDGE=\).*/#&\n\1"false"/' /etc/default/lxc


参考