「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におけるjailLinux版として捉えられます。 LXCは、個別のプロセス空間とネットワーク空間を持ちます。FreeBSDにおけるjailLinux版として捉えられます。

読み方

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

関連項目