Man page - lxc(7)

Packages contains this manual

Available languages:

en ko ja

Manual

lxc

NAME
概 要
動 作 条 件
機 能 仕 様
コ ン テ ナ の ラ イ フ サ イ ク ル
設 定
コ ン テ ナ の 作 成 と 削 除
一 時 的 な (揮 発 性 の ) コ ン テ ナ
コ ン テ ナ の 起 動 と 停 止
利 用 可 能 な TTY へ の 接 続
コ ン テ ナ の 凍 結 と 解 凍
コ ン テ ナ に 関 す る 情 報 の 取 得
コ ン テ ナ の モ ニ タ リ ン グ
コ ン テ ナ の CGROUP の 設 定
SEE ALSO

NAME

lxc - Linux コ ン テ ナ

概 要

コ ン テ ナ 技 術 は 、 メ イ ン ス ト リ ー ム の Linux Kernel で 活 発 に 開 発 が 進 ん で い る 技 術 で す 。 コ ン テ ナ 技 術 は 、 cgroup に よ り リ ソ ー ス を 管 理 す る 機 能 を 提 供 し 、 名 前 空 間 に よ り リ ソ ー ス を 隔 離 す る 機 能 を 提 供 し ま す 。

lxc は 、 ア プ リ ケ ー シ ョ ン ま た は シ ス テ ム の た め に 完 全 な リ ソ ー ス の 隔 離 や コ ン ト ロ ー ル を 提 供 す る 、 ユ ー ザ ー ス ペ ー ス の コ ン テ ナ オ ブ ジ ェ ク ト を 提 供 す る た め の こ れ ら の 新 し い 機 能 を 使 う 事 を 目 指 し て い ま す 。

lxc は 、 シ ン プ ル な コ マ ン ド ラ イ ン で コ ン テ ナ を 簡 単 に 管 理 で き る ほ ど 軽 量 で 、 他 の 用 途 に 使 う の に も 十 分 に 機 能 が そ ろ っ て い ま す 。

動 作 条 件

カ ー ネ ル の バ ー ジ ョ ン が 3.10 以 上 の デ ィ ス ト リ ビ ュ ー シ ョ ン で あ れ ば 、 lxc が 動 作 す る で し ょ う 。 こ の バ ー ジ ョ ン は 機 能 は 少 な い で す が 、 そ れ で も 十 分 楽 し め る で し ょ う 。

lxc は カ ー ネ ル が 提 供 す る 様 々 な 機 能 に 依 存 し ま す 。 lxc-checkconfig が カ ー ネ ル の 設 定 や 、 必 要 な 機 能 、 足 り な い 機 能 に つ い て の 情 報 を 提 供 し て く れ る で し ょ う 。

機 能 仕 様

コ ン テ ナ は 、 ホ ス ト の リ ソ ー ス の い く つ か を 隔 離 し て 、 内 部 で ア プ リ ケ ー シ ョ ン や シ ス テ ム を 実 行 し ま す 。

ア プ リ ケ ー シ ョ ン や シ ス テ ム は 、 あ ら か じ め 作 成 し た 設 定 や 、 コ マ ン ド へ の パ ラ メ ー タ で 与 え た 設 定 で 、 コ ン テ ナ 内 で 実 行 さ れ ま す 。

コ ン テ ナ 内 で ア プ リ ケ ー シ ョ ン を 実 行 す る 方 法

ア プ リ ケ ー シ ョ ン を 実 行 す る 前 に 、 隔 離 し た い リ ソ ー ス に つ い て 知 っ て お く べ き で す 。 デ フ ォ ル ト の 設 定 で は 、 PID、 sysv IPC、 マ ウ ン ト ポ イ ン ト が 隔 離 さ れ ま す 。 コ ン テ ナ 内 で シ ン プ ル な シ ェ ル を 実 行 し た い 場 合 で 、 特 に rootfs を 共 有 し た い 場 合 、 基 本 的 な 設 定 が 必 要 で す 。 も し 、 sshd の よ う な ア プ リ ケ ー シ ョ ン を 実 行 し た い 場 合 、 新 し い ネ ッ ト ワ ー ク ス タ ッ ク と 、 新 し い ホ ス ト 名 を 準 備 し な く て は な り ま せ ん 。 も し 、 同 じ フ ァ イ ル ( /var/run/httpd.pid 等 ) の 衝 突 を 避 け た い 場 合 、 空 の /var/run/ を 再 度 マ ウ ン ト し な け れ ば な り ま せ ん 。 ど ん な 場 合 で も 衝 突 を 避 け た い 場 合 、 コ ン テ ナ 専 用 の rootfs を 指 定 す る こ と が で き ま す 。 rootfs は デ ィ レ ク ト リ ツ リ ー と す る 事 も 可 能 で 、 前 も っ て 元 の rootfs を bind マ ウ ン ト し 、 /etc /home だ け は 自 身 の デ ィ レ ク ト リ を 使 っ て 、 自 身 の デ ィ ス ト リ ビ ュ ー シ ョ ン を 使 え ま す 。

こ こ で 、 sshd の た め の デ ィ レ ク ト リ ツ リ ー の サ ン プ ル を 示 し ま し ょ う 。

[root@lxc sshd]$ tree -d rootfs

rootfs
|-- bin
|-- dev
| |-- pts
| ‘-- shm
| ‘-- network
|-- etc
| ‘-- ssh
|-- lib
|-- proc
|-- root
|-- sbin
|-- sys
|-- usr
‘-- var
|-- empty
| ‘-- sshd
|-- lib
| ‘-- empty
| ‘-- sshd
‘-- run
‘-- sshd

そ し て 、 そ れ に 対 応 す る マ ウ ン ト ポ イ ン ト の フ ァ イ ル は 以 下 の よ う に な り ま す 。

[root@lxc sshd]$ cat fstab

/lib /home/root/sshd/rootfs/lib none ro,bind 0 0
/bin /home/root/sshd/rootfs/bin none ro,bind 0 0
/usr /home/root/sshd/rootfs/usr none ro,bind 0 0
/sbin /home/root/sshd/rootfs/sbin none ro,bind 0 0

コ ン テ ナ 内 で シ ス テ ム を 実 行 す る 方 法

コ ン テ ナ 内 で シ ス テ ム を 実 行 す る の は 、 逆 説 的 で は あ り ま す が 、 ア プ リ ケ ー シ ョ ン を 実 行 す る よ り も 簡 単 で す 。 そ れ は 、 隔 離 す る リ ソ ー ス に つ い て 考 え る 必 要 が な い か ら で 、 全 て を 隔 離 す る 必 要 が あ る か ら で す 。 他 の リ ソ ー ス は 、 コ ン テ ナ が 設 定 を 行 う の で 、 設 定 な し で 隔 離 さ れ る よ う に 指 定 さ れ ま す 。 例 え ば 、 IPv4 ア ド レ ス は コ ン テ ナ の init ス ク リ プ ト で シ ス テ ム に よ っ て セ ッ ト ア ッ プ さ れ る で し ょ う 。 以 下 に 、 (シ ス テ ム を 実 行 す る と き の ) マ ウ ン ト ポ イ ン ト フ ァ イ ル を 示 し ま す 。

[root@lxc debian]$ cat fstab

/dev /home/root/debian/rootfs/dev none bind 0 0
/dev/pts /home/root/debian/rootfs/dev/pts none bind 0 0

コ ン テ ナ の ラ イ フ サ イ ク ル

コ ン テ ナ が 作 成 さ れ る と き 、 コ ン テ ナ は 設 定 情 報 を 含 み ま す 。 プ ロ セ ス が 生 成 さ れ る と き 、 コ ン テ ナ は 開 始 し 、 実 行 さ れ る で し ょ う 。 コ ン テ ナ 内 で 実 行 さ れ て い る 最 後 の プ ロ セ ス が 終 了 し た と き 、 コ ン テ ナ は 停 止 し ま す 。

コ ン テ ナ の 初 期 化 時 の 失 敗 の 場 合 は 、 (以 下 の 図 の ) 中 断 の 状 態 を 通 り ま す 。

---------
| STOPPED |<---------------
--------- |
| |
start |
| |
V |
---------- |
| STARTING |--error- |
---------- | |
| | |
V V |
--------- ---------- |
| RUNNING | | ABORTING | |
--------- ---------- |
| | |
no process | |
| | |
V | |
---------- | |
| STOPPING |<------- |
---------- |
| |
---------------------

設 定

コ ン テ ナ は 設 定 フ ァ イ ル 経 由 で 設 定 し ま す 。 設 定 の 書 式 は lxc.conf (5) で 説 明 し て い ま す 。

コ ン テ ナ の 作 成 と 削 除

持 続 性 の コ ン テ ナ オ ブ ジ ェ ク ト は lxc-create コ マ ン ド で 作 成 で き ま す 。 コ マ ン ド に は コ ン テ ナ 名 を パ ラ メ ー タ と し て 与 え 、 オ プ シ ョ ン で 設 定 フ ァ イ ル と テ ン プ レ ー ト を 指 定 し ま す 。 こ こ で 指 定 す る 名 前 は 、 他 の コ マ ン ド か ら こ の コ ン テ ナ を 参 照 す る 際 に 使 い ま す 。 lxc-destroy コ マ ン ド は コ ン テ ナ オ ブ ジ ェ ク ト を 削 除 し ま す 。

lxc-create -n foo
lxc-destroy -n foo

一 時 的 な (揮 発 性 の ) コ ン テ ナ

コ ン テ ナ を 開 始 す る 前 に コ ン テ ナ オ ブ ジ ェ ク ト を 作 成 す る 必 要 は あ り ま せ ん 。 パ ラ メ ー タ と し て 設 定 フ ァ イ ル を 指 定 し て 、 コ ン テ ナ を 直 接 起 動 で き ま す 。

コ ン テ ナ の 起 動 と 停 止

コ ン テ ナ が 作 成 さ れ る と 、 ア プ リ ケ ー シ ョ ン も し く は シ ス テ ム を 実 行 で き ま す 。 こ の た め に 使 用 す る の が lxc-execute lxc-start コ マ ン ド で す 。 ア プ リ ケ ー シ ョ ン を 開 始 す る 前 に コ ン テ ナ を 作 成 し な か っ た 場 合 、 コ ン テ ナ は コ マ ン ド に パ ラ メ ー タ と し て 渡 し た 設 定 フ ァ イ ル を 使 用 し ま す 。 も し 、 こ の よ う な パ ラ メ ー タ も な い 場 合 は 、 デ フ ォ ル ト で 指 定 さ れ て い る 通 り に 隔 離 さ れ ま す 。 ア プ リ ケ ー シ ョ ン が 終 了 し た 場 合 、 コ ン テ ナ も 停 止 し ま す 。 lxc-stop コ マ ン ド を 使 っ て 、 実 行 中 の ア プ リ ケ ー シ ョ ン を 停 止 す る こ と も で き ま す 。

コ ン テ ナ 内 で ア プ リ ケ ー シ ョ ン を 実 行 す る こ と は 、 正 確 に は シ ス テ ム と し て 実 行 す る の と は 異 な り ま す 。 こ の た め 、 コ ン テ ナ 内 で ア プ リ ケ ー シ ョ ン を 実 行 す る た め の コ マ ン ド に は 、 2 種 類 の 違 っ た も の が あ り ま す 。

lxc-execute -n foo [-f config] /bin/bash
lxc-start -n foo [-f config] [/bin/bash]

lxc-execute コ マ ン ド は 、 間 に lxc-init プ ロ セ ス を 介 し て 、 コ ン テ ナ 内 で 指 定 し た コ マ ン ド を 実 行 し ま す 。 lxc-init は コ マ ン ド を 実 行 し た 後 、 (コ ン テ ナ 内 で の デ ー モ ン の 実 行 を サ ポ ー ト す る た め に ) 実 行 し た コ マ ン ド と 生 成 さ れ た 全 て の プ ロ セ ス が 終 了 す る の を 待 ち ま す 。 言 い か え る と 、 コ ン テ ナ 内 で は lxc-init は PID 1 を 持 ち 、 ア プ リ ケ ー シ ョ ン の 最 初 の プ ロ セ ス は PID 2 を も ち ま す 。

lxc-start コ マ ン ド は 、 コ ン テ ナ 内 の 特 定 の コ マ ン ド を 直 接 実 行 し ま す 。 最 初 の プ ロ セ ス の PID が 1 と な り ま す 。 も し 、 実 行 す る コ マ ン ド が 指 定 さ れ て い な い 場 合 は 、 lxc-start は lxc.init.cmd で 設 定 さ れ た コ マ ン ド を 実 行 し ま す 。 も し lxc.init.cmd が 設 定 さ れ て い な い 場 合 は /sbin/init を 実 行 し ま す 。

ま と め る と 、 lxc-execute は ア プ リ ケ ー シ ョ ン を 実 行 す る た め の コ マ ン ド で あ り 、 lxc-start は シ ス テ ム を 実 行 す る の に よ り 適 し た コ マ ン ド で す 。

も し ア プ リ ケ ー シ ョ ン の 反 応 が な く な っ た 場 合 や 、 ア ク セ ス で き な く な っ た 場 合 、 自 分 で 終 了 で き な い 場 合 は 、 荒 っ ぽ い で す が 、 lxc-stop コ マ ン ド が コ ン テ ナ 内 の 全 て の プ ロ セ ス を 容 赦 な く 停 止 さ せ て く れ る で し ょ う 。

lxc-stop -n foo -k

利 用 可 能 な TTY へ の 接 続

コ ン テ ナ が tty を 持 つ よ う に 設 定 さ れ て い る な ら ば 、 tty を 通 し て コ ン テ ナ に ア ク セ ス す る こ と が で き ま す 。 ア ク セ ス で き る か ど う か は 、 以 下 の コ マ ン ド が 使 う tty が コ ン テ ナ で 利 用 で き る よ う に 設 定 さ れ て い る か 次 第 で す 。 tty が 失 わ れ た と き 、 再 度 の ロ グ イ ン な し で そ の tty に 再 接 続 す る こ と が 可 能 で す 。

lxc-console -n foo -t 3

コ ン テ ナ の 凍 結 と 解 凍

ジ ョ ブ ス ケ ジ ュ ー リ ン グ な ど で 、 コ ン テ ナ に 属 す る 全 て の プ ロ セ ス を 停 止 す る 事 が 役 に 立 つ と き が あ り ま す 。 コ マ ン ド

lxc-freeze -n foo

は 、 全 て の プ ロ セ ス を 中 断 不 可 能 な 状 態 に 置 き ま す 。 そ し て 、

lxc-unfreeze -n foo

そ の 全 て の プ ロ セ ス を 再 開 し ま す 。

こ の 機 能 は 、 カ ー ネ ル で cgroup v1 の freezer コ ン ト ロ ー ラ が 有 効 に な っ て い る 場 合 に 使 用 で き ま す 。

コ ン テ ナ に 関 す る 情 報 の 取 得

多 数 の コ ン テ ナ が 存 在 す る 場 合 、 そ れ ら が 実 行 さ れ た り 削 除 さ れ た り す る こ と 、 何 が 実 行 さ れ て い て 、 特 定 の コ ン テ ナ 内 で 実 行 さ れ て い る PID が 何 で あ る か を フ ォ ロ ー す る の は 大 変 で す 。 こ の よ う な 時 に は 、 以 下 の よ う な コ マ ン ド が 役 に 立 つ か も し れ ま せ ん 。

lxc-ls -f
lxc-info -n foo

lxc-ls は コ ン テ ナ を リ ス ト 表 示 し ま す 。

lxc-info は 、 指 定 し た コ ン テ ナ に 関 す る 情 報 を 表 示 し ま す 。

こ こ で 、 以 上 の コ マ ン ド を 組 み 合 わ せ て 、 ど の よ う に し た ら 全 て の コ ン テ ナ の リ ス ト と 、 そ れ ぞ れ の 状 態 が 得 ら れ る か の 例 を 示 し ま す 。

for i in $(lxc-ls -1); do
lxc-info -n $i
done

コ ン テ ナ の モ ニ タ リ ン グ

時 々 、 コ ン テ ナ の 状 態 を 追 跡 す る こ と が 出 来 る と 便 利 な 事 が あ り ま す 。 例 え ば 、 状 態 を モ ニ タ リ ン グ し た り 、 ス ク リ プ ト 内 で 特 定 の 状 態 を 待 っ た り す る よ う な 場 合 で す 。

lxc-monitor コ マ ン ド は 、 一 つ も し く は 複 数 の コ ン テ ナ を モ ニ タ リ ン グ し ま す 。 こ の コ マ ン ド の パ ラ メ ー タ は 、 正 規 表 現 を 受 け 付 け ま す 。 例 え ば

lxc-monitor -n "foo|bar"

は ’foo’ と ’bar’ と い う 名 前 の コ ン テ ナ の 状 態 を モ ニ タ リ ン グ し ま す 。 そ し て 、

lxc-monitor -n ".*"

は 全 て の コ ン テ ナ の 状 態 を モ ニ タ リ ン グ し ま す 。

コ ン テ ナ ’foo’ が 開 始 さ れ 、 い く つ か 処 理 を 行 い 、 終 了 し た 場 合 、 出 力 は 以 下 の よ う に な り ま す 。

’foo’ changed state to [STARTING]
’foo’ changed state to [RUNNING]
’foo’ changed state to [STOPPING]
’foo’ changed state to [STOPPED]

lxc-wait コ マ ン ド は 指 定 し た 状 態 を 待 っ て 終 了 し ま す 。 こ れ は 、 コ ン テ ナ の 開 始 や 終 了 に 同 期 し た い ス ク リ プ ト で 役 に 立 ち ま す 。 パ ラ メ ー タ は 、 異 な っ た 状 態 の 論 理 和 (OR) を 指 定 し ま す 。 以 下 の 例 は 、 バ ッ ク グ ラ ウ ン ド で 実 行 さ れ た コ ン テ ナ を ど の よ う に し て 待 つ か を 示 し ま す 。

# launch lxc-wait in background
lxc-wait -n foo -s STOPPED &
LXC_WAIT_PID=$!

# this command goes in background
lxc-execute -n foo mydaemon &

# block until the lxc-wait exits
# and lxc-wait exits when the container
# is STOPPED
wait $LXC_WAIT_PID
echo "’foo’ is finished"

コ ン テ ナ の CGROUP の 設 定

コ ン テ ナ は control group と 結 合 し て い ま す 。 コ ン テ ナ を 開 始 す る と cgroup が 生 成 さ れ 、 結 び つ け ら れ ま す 。 cgroup の プ ロ パ テ ィ は 、 lxc-cgroup コ マ ン ド を 使 っ て 、 コ ン テ ナ が 実 行 中 に 読 み 取 っ た り 変 更 し た り で き ま す 。

lxc-cgroup コ マ ン ド は 、 コ ン テ ナ と 結 び つ け ら れ て い る control group サ ブ シ ス テ ム を 設 定 し た り 、 取 得 し た り す る の に 使 い ま す 。 サ ブ シ ス テ ム 名 の 指 定 は ユ ー ザ が 行 な い 、 こ の コ マ ン ド は サ ブ シ ス テ ム 名 の 文 法 チ ェ ッ ク は 一 切 行 な い ま せ ん 。 も し 、 指 定 し た サ ブ シ ス テ ム 名 が 存 在 し な い 場 合 は 、 コ マ ン ド の 実 行 は 失 敗 し ま す 。

lxc-cgroup -n foo cpuset.cpus

は 、 こ の サ ブ シ ス テ ム の 内 容 を 表 示 し ま す 。

lxc-cgroup -n foo cpu.shares 512

は 、 こ の サ ブ シ ス テ ム に 指 定 し た 値 を 設 定 し ま す 。

SEE ALSO

lxc (7), lxc-create (1), lxc-copy (1), lxc-destroy (1), lxc-start (1), lxc-stop (1), lxc-execute (1), lxc-console (1), lxc-monitor (1), lxc-wait (1), lxc-cgroup (1), lxc-ls (1), lxc-info (1), lxc-freeze (1), lxc-unfreeze (1), lxc-attach (1), lxc.conf (5)