「LXC」の版間の差分
行33: | 行33: | ||
/srv/lxccache /var/cache/lxc none defaults,bind 0 0' /etc/fstab | /srv/lxccache /var/cache/lxc none defaults,bind 0 0' /etc/fstab | ||
sudo mount -a | sudo mount -a | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | == テンプレートファイル == | ||
+ | /usr/lib/lxc/templates/lxc-テンプレート名 のファイルが参照されます。 | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | user@u1:~$ ls /usr/lib/lxc/templates/ | ||
+ | lxc-busybox lxc-fedora lxc-sshd lxc-ubuntu-cloud | ||
+ | lxc-debian lxc-opensuse lxc-ubuntu | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== 使い方 == | == 使い方 == | ||
+ | === コンテナの作成 === | ||
-t は、テンプレート名を指定します。 | -t は、テンプレート名を指定します。 | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
行45: | 行54: | ||
-n は、作成する環境の名前です。 | -n は、作成する環境の名前です。 | ||
+ | デフォルトユーザー ubuntu がパスワード ubuntu で作成されます。 | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | % sudo lxc-create -t ubuntu -n c1 | ||
+ | |||
+ | ... 省略 | ||
+ | |||
+ | Download complete | ||
+ | Copy /var/cache/lxc/precise/rootfs-i386 to /var/lib/lxc/c1/rootfs ... | ||
+ | Copying rootfs to /var/lib/lxc/c1/rootfs ... | ||
+ | |||
+ | ## | ||
+ | # The default user is 'ubuntu' with password 'ubuntu'! | ||
+ | # Use the 'sudo' command to run tasks as root in the container. | ||
+ | ## | ||
+ | |||
+ | 'ubuntu' template installed | ||
+ | 'c1' created | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === コンテナのリスを表示する === | ||
コンテナのリストは、lxc-listコマンドで表示します。 | コンテナのリストは、lxc-listコマンドで表示します。 | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
行50: | 行79: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | user@u1:~$ sudo lxc-list | ||
+ | RUNNING | ||
+ | |||
+ | FROZEN | ||
+ | |||
+ | STOPPED | ||
+ | |||
+ | </syntaxhighlight> | ||
+ | |||
+ | === コンテナを起動する === | ||
コンテナを起動するには、lxc-startコマンドを使用します。 | コンテナを起動するには、lxc-startコマンドを使用します。 | ||
+ | |||
+ | コンソールにいきなりアクセスします。 | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
sudo lxc-start -n c1 | sudo lxc-start -n c1 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | コンソールにアクセスせずに、デタッチした状態で起動します。 | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | sudo lxc-start -n c1 -d | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === コンテナのコンソールを切断する === | ||
+ | コンテナのコンソールを切断(デタッチ)するには、コンソールのログインプロンプトで以下のキーを入力します。 | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | C-a q | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === コンテナのコンソールに接続する === | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | sudo lxc-console -n c1 | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === コンテナをシャットダウンする === | ||
コンテナのシャットダウンには、lxc-shutdownコマンドを使用します。 | コンテナのシャットダウンには、lxc-shutdownコマンドを使用します。 | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
行60: | 行119: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | === コンテナを停止する === | ||
強制的にコンテナを終了させる場合には、lxc-stopコマンドを使用します。 | 強制的にコンテナを終了させる場合には、lxc-stopコマンドを使用します。 | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
行67: | 行127: | ||
コンテナは、 /var/lib/lxc/コンテナ名 で作られます。 | コンテナは、 /var/lib/lxc/コンテナ名 で作られます。 | ||
+ | === コンテナを削除する === | ||
コンテナのイメージを削除する場合は、 lxc-destroyコマンドを使用します。 | コンテナのイメージを削除する場合は、 lxc-destroyコマンドを使用します。 | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
行72: | 行133: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | === クローンの作成 === | ||
+ | コンテナc1を元にc2を作成します。 | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | sudo lxc-clone -o c1 -n c2 | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | -sオプションを使うと、オリジナルのスナップショットの新しいrootfsを作成します。 | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | sudo lxc-clone -s -o c1 -n c2 | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === memo === | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
sudo lxc-create -t ubuntu -n CN | sudo lxc-create -t ubuntu -n CN | ||
行84: | 行157: | ||
* [[サンドボックス]] | * [[サンドボックス]] | ||
* [[Linux-VServer]] | * [[Linux-VServer]] | ||
+ | * [[Chef]] | ||
<!-- | <!-- | ||
vim: filetype=mediawiki | vim: filetype=mediawiki | ||
--> | --> |
2013年12月8日 (日) 19:01時点における版
LXC (Linux Containers)とは、1つのコントロールホストの上で、複数の隔離されたLinuxシステム(コンテナ)を実行する OSレベルの仮想化です。LXCは、個別のプロセス空間とネットワーク空間を持ちます。FreeBSDにおけるjailのLinux版として捉えられます。 LXCは、個別のプロセス空間とネットワーク空間を持ちます。FreeBSDにおけるjailのLinux版として捉えられます。
読み方
- LXC
- えるえっくすしー
- Linux Containers
- りなっくす こんていなーず
目次
概要
LXCは、Linuxカーネル 2.6.29 から利用できます。
Linuxカーネル 3.0.0 では、コンテナに対するセキュリティ対策が不十分です。コンテナ内のroot権限で、ホストを操作できる穴があります。
インストール
Ubuntu/Debianにインストールする場合
apt-get コマンドでインストールする場合です。
sudo apt-get install lxc
セットアップ
- /etc/init/lxc-net.conf
- /etc/init/lxc.conf
- /usr/share/doc/lxc/examples
sudo mkdir /srv/lxclib /srv/lxccache sudo rm -rf /var/lib/lxc /var/cache/lxc sudo ln -s /srv/lxclib /var/lib/lxc sudo ln -s /srv/lxccache /var/cache/lxc
もしくは、bind mount を使用します。
sudo mkdir /srv/lxclib /srv/lxccache sudo sed -i '$a \ /srv/lxclib /var/lib/lxc none defaults,bind 0 0 \ /srv/lxccache /var/cache/lxc none defaults,bind 0 0' /etc/fstab sudo mount -a
テンプレートファイル
/usr/lib/lxc/templates/lxc-テンプレート名 のファイルが参照されます。
user@u1:~$ ls /usr/lib/lxc/templates/ lxc-busybox lxc-fedora lxc-sshd lxc-ubuntu-cloud lxc-debian lxc-opensuse lxc-ubuntu
使い方
コンテナの作成
-t は、テンプレート名を指定します。
sudo lxc-create -t ubuntu -n c1
/usr/lib/lxc/templates/lxc-テンプレート名 のファイルが参照されます。
-n は、作成する環境の名前です。
デフォルトユーザー ubuntu がパスワード ubuntu で作成されます。
% sudo lxc-create -t ubuntu -n c1 ... 省略 Download complete Copy /var/cache/lxc/precise/rootfs-i386 to /var/lib/lxc/c1/rootfs ... Copying rootfs to /var/lib/lxc/c1/rootfs ... ## # The default user is 'ubuntu' with password 'ubuntu'! # Use the 'sudo' command to run tasks as root in the container. ## 'ubuntu' template installed 'c1' created
コンテナのリスを表示する
コンテナのリストは、lxc-listコマンドで表示します。
sudo lxc-list
user@u1:~$ sudo lxc-list RUNNING FROZEN STOPPED
コンテナを起動する
コンテナを起動するには、lxc-startコマンドを使用します。
コンソールにいきなりアクセスします。
sudo lxc-start -n c1
コンソールにアクセスせずに、デタッチした状態で起動します。
sudo lxc-start -n c1 -d
コンテナのコンソールを切断する
コンテナのコンソールを切断(デタッチ)するには、コンソールのログインプロンプトで以下のキーを入力します。
C-a q
コンテナのコンソールに接続する
sudo lxc-console -n c1
コンテナをシャットダウンする
コンテナのシャットダウンには、lxc-shutdownコマンドを使用します。
sudo lxc-shutdown -n c1
コンテナを停止する
強制的にコンテナを終了させる場合には、lxc-stopコマンドを使用します。
sudo lxc-stop -n c1
コンテナは、 /var/lib/lxc/コンテナ名 で作られます。
コンテナを削除する
コンテナのイメージを削除する場合は、 lxc-destroyコマンドを使用します。
sudo lxc-destroy -n c1
クローンの作成
コンテナc1を元にc2を作成します。
sudo lxc-clone -o c1 -n c2
-sオプションを使うと、オリジナルのスナップショットの新しいrootfsを作成します。
sudo lxc-clone -s -o c1 -n c2
memo
sudo lxc-create -t ubuntu -n CN
sudo lxc-create -t ubuntu -n oneiric1 -- -r oneiric