diff --git a/doc/ja/lxc.container.conf.sgml.in b/doc/ja/lxc.container.conf.sgml.in index 82303c008..658f82b85 100644 --- a/doc/ja/lxc.container.conf.sgml.in +++ b/doc/ja/lxc.container.conf.sgml.in @@ -56,61 +56,94 @@ by KATOH Yasufumi - linux コンテナ (lxc) は、常に使用する前に作成されます。 - コンテナは、プロセスがコンテナを使う時に仮想化/隔離するシステムリソースのセットを定義することによって作成します。 - デフォルトでは、pid, sysv ipc, マウントポイントが仮想化され、隔離されます。 - 他のシステムリソースは、設定ファイルで明確に定義されない限りは、コンテナをまたいで共有されます。 - 例えば、もしネットワークが設定されていなければ、コンテナを作成する側とコンテナでネットワークを共有します。 - しかし、ネットワークが指定されれば、新しいネットワークスタックがコンテナ用に作成され、コンテナは作成元の環境のネットワークを使いません。 + LXC is the well-known and heavily tested low-level Linux container + runtime. It is in active development since 2008 and has proven itself in + critical production environments world-wide. Some of its core contributors + are the same people that helped to implement various well-known + containerization features inside the Linux kernel. + --> + LXC は良く知られた、多くのテストが行われた Linux コンテナのランタイムです。LXC は、2008 年以来アクティブに開発されており、世界中の重要な本番環境で実証されています。開発への貢献者の中には、Linux カーネル内の良く知られた様々なコンテナ機能の実装に貢献した人と同じ人もいます。 - 設定ファイルは、コンテナに割り当てられる様々なシステムリソースを定義します。 - 現時点では、utsname、ネットワーク、マウントポイント、root ファイルシステム、ユーザ名前空間、control groups がサポートされます。 + LXC's main focus is system containers. That is, containers which offer an + environment as close as possible as the one you'd get from a VM but + without the overhead that comes with running a separate kernel and + simulating all the hardware. + --> + LXC は主にシステムコンテナにフォーカスを当てています。つまり、VM で得られる環境と可能な限り近い環境を提供を提供するにも関わらず、別々のカーネルを実行したり、ハードウェアをすべてシミュレートしたりすることによるオーバーヘッドがないコンテナのことです。 + このような環境は、名前空間 (namespace)、強制アクセスコントロール、cgroup といったカーネルのセキュリティ機能の組み合わせで実現しています。 + + + + + LXC は非特権コンテナをサポートしています。非特権コンテナは、いかなる特権も持たずに実行するコンテナです。非特権コンテナの実行には、コンテナを実行しているカーネルにユーザ名前空間 (user namespace) のサポートが必要です。LXC は、ユーザ名前空間がメインラインカーネルにマージされてから、初めて非特権コンテナをサポートしたランタイムです。 + + + + + 本質的には、ユーザ名前空間は与えられた UID、GID の組を隔離します。ユーザ名前空間は、ホスト上の UID、GID のある範囲を、それとは異なるコンテナ上の UID、GID の範囲へマッピングすることで実現します。カーネルは、ホスト上では実際には UID、GID は特権を持たないにも関わらず、コンテナ内ではすべての UID、GID が期待されるように見えるように変換を行います。 + 例えば、コンテナ内では UID、GID が 0 として実行中のプロセスは、ホスト上では UID、GID が 100000 として見えるでしょう。実装と動作の詳細は、ユーザ名前空間の man ページから得られます。UID と GID のマッピングは を使って定義できます。 + + + + + Linux コンテナは、簡単な設定ファイルで定義します。設定ファイル中のオプションは key = value の形で一行で表します。'#' は、その行はコメントであることを示します。ケーパビリティや cgroup のオプションのような、リスト形式で指定するオプションでは、value がない形式で指定でき、そのように使うと、それ以前に定義した値をすべてクリアします。 + + + + - 設定ファイルのオプション一つを、key = value の形で一行で表します。 - '#' は、その行はコメントであることを示します。 - ケーパビリティや cgroup のオプションのような、リスト形式で指定するオプションでは、value がない形式で指定できます。このように使うと、それ以前に定義した値をすべてクリアします。 + LXC は、シングルドットを使って設定キーの名前空間を表します。 のような複雑な設定キーは、 や、さらに細分化された設定向けの色々なサブキーを持つことを意味します。 <!-- Configuration -->設定 + In order to ease administration of multiple related containers, it is + possible to have a container configuration file cause another file to be + loaded. For instance, network configuration can be defined in one common + file which is included by multiple containers. Then, if the containers + are moved to another host, only one file may need to be updated. + --> 複数の関係するコンテナの管理を容易にするために、コンテナの設定ファイルに別のファイルをロードすることが可能です。 例えば、ネットワークの設定を、複数のコンテナから include させるように 1 つのファイルに定義することが可能です。 その場合、コンテナが他のホストに移動すると、そのファイルだけを更新する必要があるかもしれません。 @@ -139,11 +172,10 @@ by KATOH Yasufumi <!-- Architecture -->アーキテクチャ コンテナに対してアーキテクチャを設定することが可能です。 例えば、64 ビットのホスト上で 32 ビットのバイナリを動かすために 32 ビットアーキテクチャを設定することが可能です。 @@ -164,20 +196,20 @@ by KATOH Yasufumi - 有効なオプションは以下です。 - , - , - , - - - - + 有効なオプションには以下のようなものがあります。 + , + , + , + + + + @@ -186,10 +218,9 @@ by KATOH Yasufumi <!-- Hostname -->ホスト名 utsname セクションは、コンテナに設定されるホスト名を定義します。 コンテナは、システムのホスト名を変えることなく、自身のホスト名を持つ事が可能です。 @@ -215,17 +246,15 @@ by KATOH Yasufumi <!-- Halt signal -->クリーンなシャットダウン時のシグナル - - lxc-stop がコンテナをクリーンにシャットダウンするためにコンテナの init プロセスに送るシグナル名か番号を指定できます。 - init システムによって、クリーンなシャットダウンを行うために使うシグナルは異なります。 - このオプションではシグナルとして kill(1) で使う形式を指定することができます。 + + コンテナをクリーンにシャットダウンするためにコンテナの init プロセスに送るシグナル名か番号を指定できます。init システムによって、クリーンなシャットダウンを行うために使うシグナルは異なります。このオプションではシグナルとして kill(1) で使う形式を指定できます。 例えば SIGKILL, SIGRTMIN+14, SIGRTMAX-10 のような形式、もしくは数字を指定します。デフォルトのシグナルは SIGPWR です。 @@ -249,13 +278,12 @@ by KATOH Yasufumi リブート時のシグナル <!-- Reboot signal --> - lxc-stop がコンテナをリブートするために送るシグナル名か番号を指定できます。 - このオプションではシグナルとして kill(1) で使う形式を指定することができます。 + コンテナをリブートするために送るシグナル名か番号を指定できます。このオプションではシグナルとして kill(1) で使う形式を指定できます。 例えば SIGKILL, SIGRTMIN+14, SIGRTMAX-10 のような形式、もしくは数字を指定します。デフォルトのシグナルは SIGINT です。 @@ -279,13 +307,12 @@ by KATOH Yasufumi <!-- Stop signal -->強制停止時のシグナル - lxc-stop がコンテナを強制的にシャットダウンするために送るシグナル名か番号を指定することができます。 - このオプションではシグナルとして kill(1) で使う形式を指定することができます。 + コンテナを強制的にシャットダウンするために送るシグナル名か番号を指定できます。このオプションではシグナルとして kill(1) で使う形式を指定できます。 例えば SIGKILL, SIGRTMIN+14, SIGRTMAX-10 のような形式、もしくは数字を指定します。デフォルトのシグナルは SIGKILL です。 @@ -339,20 +366,17 @@ by KATOH Yasufumi <!-- Init ID -->Init が使う ID - - lxc-execute が実行するコンテナの init と、その後に起動するコマンドが使用する UID/GID を設定します。 + - このオプションは lxc-execute がユーザ名前空間内で起動するときのみ使われます。 - - - デフォルト値は UID(0), GID(0) です。 + --> + init と後続のコマンドが使う UID/GID を設定します。システムコンテナを起動するのに非 root な UID を使うと、特権がないために動作しないでしょう。UID/GID の指定は、通常はアプリケーションコンテナの動作の際に役に立ちます。 + + デフォルト値: UID(0)、GID(0) @@ -361,10 +385,10 @@ by KATOH Yasufumi - - ユーザ名前空間内で init が使う UID です。 + + init が使う UID です。 @@ -375,9 +399,9 @@ by KATOH Yasufumi - ユーザ名前空間内で init が使う GID です。 + init が使う GID です。 @@ -444,25 +468,28 @@ by KATOH Yasufumi - + - - - コンテナがどの種類のネットワーク仮想化を使うかを指定します。 - 一つのネットワークの設定ごとに フィールドを指定します。 - このように、一つのコンテナに複数のネットワークインターフェースを割り当てることができるだけでなく、同じコンテナに対して複数のネットワーク仮想化の種類を指定することが出来ます。 - 仮想化の種類は以下の値を取る事が出来ます: - + + + コンテナがどの種類のネットワーク仮想化を使うかを指定します。すべての キーに、追加のインデックス を使うと、複数のネットワークを指定できます。例えば、 は、同じタイプの異なるネットワークを 2 つ指定します。 + 同じインデックスを指定したキーはすべて同じネットワークの指定になります。例えば、 と同じネットワークの設定になります。 + 現時点では、以下のネットワーク仮想化のタイプが使えます: + ネットワークに対して行うアクションを指定します。 @@ -613,13 +639,12 @@ by KATOH Yasufumi - + 実際のネットワークトラフィックに使うインターフェースを指定します。 @@ -628,12 +653,12 @@ by KATOH Yasufumi - + インターフェースに対する MTU を指定します。 @@ -642,77 +667,64 @@ by KATOH Yasufumi - + - インターフェース名は動的に割り当てられます。 - しかし、もしコンテナが使用する設定ファイルが一般的な名前を使用するために、他の特定の名前が必要であれば (例えば eth0 など)、コンテナ内のインターフェースは、このオプションで指定した名前にリネームされます。 + インターフェース名は動的に割り当てられます。しかし、もしコンテナが使用する設定ファイルが一般的な名前を使用するために、他の特定の名前が必要であれば (例えば eth0 など)、コンテナ内のインターフェースは、このオプションで指定した名前にリネームされます。 - + - 仮想インターフェースの MAC アドレスは、デフォルトでは動的に割り当てられます。 - しかし、MAC アドレスの衝突や、リンクローカルIPv6 アドレスを常に同じにした場合などは、このオプションが必要です。 - アドレス中の "x" という文字は、ランダムな値に置き換えられます。 - これによりテンプレートに hwaddr を設定することが可能になります。 + 仮想インターフェースの MAC アドレスは、デフォルトでは動的に割り当てられます。しかし、MAC アドレスの衝突や、リンクローカルIPv6 アドレスを常に同じにした場合などは、このオプションが必要です。アドレス中の "x" という文字は、ランダムな値に置き換えられます。これによりテンプレートに hwaddr を設定することが可能になります。 - + - 仮想インターフェースに割り当てる ipv4 アドレスを指定します。 - 複数行により複数の ipv4 アドレスを指定します。 - このアドレスは x.y.z.t/m というフォーマットで指定します。 - 例えば、192.168.1.123/24。ブロードキャストアドレスも同じ行の ipv4 アドレスのすぐ後で指定しなくてはなりません。 + 仮想インターフェースに割り当てる ipv4 アドレスを指定します。複数行により複数の ipv4 アドレスを指定します。このアドレスは x.y.z.t/m というフォーマットで指定します。例) 192.168.1.123/24 - + - コンテナでゲートウェイとして使う IPv4 アドレスを指定します。 - アドレスは x.y.z.t というフォーマットです。 - 例えば、192.168.1.123。 - - という特別な値を記述する事も可能です。 - これは ( で指定した) ブリッジインターフェースの最初のアドレスを使用し、それをゲートウェイに使うという意味になります。 - はネットワークタイプとして を指定している時だけ有効となります。 + コンテナでゲートウェイとして使う IPv4 アドレスを指定します。アドレスは x.y.z.t というフォーマットです。例) 192.168.1.123 + という特別な値を指定できます。これは ( で指定した) ブリッジインターフェースの最初のアドレスを使用し、それをゲートウェイに使うという意味になります。 はネットワークタイプとして を指定している時だけ有効となります。 @@ -736,34 +743,30 @@ by KATOH Yasufumi - + - 仮想インターフェースに割り当てる ipv6 アドレスを指定します。 - 複数行により複数の ipv6 アドレスを指定します。 - このアドレスは x::y/m というフォーマットで指定します。 - 例えば、2003:db8:1:0:214:1234:fe0b:3596/64。 + 仮想インターフェースに割り当てる ipv6 アドレスを指定します。複数行により複数の ipv6 アドレスを指定します。このアドレスは x::y/m というフォーマットで指定します。例) 2003:db8:1:0:214:1234:fe0b:3596/64 - + - コンテナでゲートウェイとして使う IPv6 アドレスを指定します。 - アドレスは x::y というフォーマットです。例えば、2003:db8:1:0::1。 - - という特別な値を記述する事も可能です。 - これは ( で指定した) ブリッジインターフェースの最初のアドレスを使用し、それをゲートウェイに使うという意味になります。 - はネットワークタイプとして を指定している時だけ有効となります。 + コンテナでゲートウェイとして使う IPv6 アドレスを指定します。アドレスは x::y というフォーマットです。例) 2003:db8:1:0::1 + という特別な値を記述する事も可能です。これは ( で指定した) ブリッジインターフェースの最初のアドレスを使用し、それをゲートウェイに使うという意味になります。 はネットワークタイプとして を指定している時だけ有効となります。 - + @@ -801,10 +800,8 @@ by KATOH Yasufumi type, other arguments may be passed: veth/macvlan/phys. And finally (host-sided) device name. --> - ホスト側から使われる、ネットワークの作成と設定が済んだ後に実行するスクリプトを指定します。 - 以下の引数がスクリプトに渡されます: コンテナ名、設定セクション名(net)。 - その後の引数はスクリプトのフックで使われる設定セクションに依存します。 - 以下がネットワークシステムによって使われます: 実行コンテキスト (up)、ネットワークのタイプ (empty/veth/macvlan/phys) + ホスト側から使われる、ネットワークの作成と設定が済んだ後に実行するスクリプトを指定します。以下の引数がスクリプトに渡されます: コンテナ名、設定セクション名(net)。 + その後の引数はスクリプトのフックで使われる設定セクションに依存します。以下がネットワークシステムによって使われます: 実行コンテキスト (up)、ネットワークのタイプ (empty/veth/macvlan/phys) ネットワークのタイプによっては、更に別の引数が渡されるかもしれません: veth/macvlan/phys の場合 (ホスト側の) デバイス名 @@ -813,16 +810,14 @@ by KATOH Yasufumi Standard error is not logged, but can be captured by the hook redirecting its standard error to standard output. --> - スクリプトからの標準出力は debug レベルでロギングされます。 - 標準エラー出力はロギングされません。 - しかし、フックの標準エラー出力を標準出力にリダイレクトすることにより保存することは可能です。 + スクリプトからの標準出力は debug レベルでロギングされます。標準エラー出力はロギングされません。しかし、フックの標準エラー出力を標準出力にリダイレクトすることにより保存することは可能です。 - + @@ -838,10 +833,8 @@ by KATOH Yasufumi type, other arguments may be passed: veth/macvlan/phys. And finally (host-sided) device name. --> - ホスト側から使われる、ネットワークを破壊する前に実行するスクリプトを指定します。 - 以下の引数がスクリプトに渡されます: コンテナ名、設定セクション名(net)。 - その後の引数はスクリプトのフックで使われる設定セクションに依存します。 - 以下がネットワークシステムによって使われます: 実行コンテキスト (up)、ネットワークのタイプ (empty/veth/macvlan/phys)。 + ホスト側から使われる、ネットワークを破壊する前に実行するスクリプトを指定します。以下の引数がスクリプトに渡されます: コンテナ名、設定セクション名(net)。 + その後の引数はスクリプトのフックで使われる設定セクションに依存します。以下がネットワークシステムによって使われます: 実行コンテキスト (up)、ネットワークのタイプ (empty/veth/macvlan/phys)。 ネットワークのタイプによっては、更に別の引数が渡されるかもしれません: veth/macvlan/phys。そして最後に (ホスト側の) デバイス名が渡されます。 @@ -850,9 +843,7 @@ by KATOH Yasufumi Standard error is not logged, but can be captured by the hook redirecting its standard error to standard output. --> - スクリプトからの標準出力は debug レベルでロギングされます。 - 標準エラー出力はロギングされません。 - しかし、フックの標準エラー出力を標準出力にリダイレクトすることにより保存することは可能です。 + スクリプトからの標準出力は debug レベルでロギングされます。標準エラー出力はロギングされません。しかし、フックの標準エラー出力を標準出力にリダイレクトすることにより保存することは可能です。 @@ -1134,9 +1125,9 @@ by KATOH Yasufumi マウント情報の書かれた fstab フォーマットで書かれたファイルの場所を指定します。 マウントする場所は相対バスで書くことができます。そして、ほとんどの場合にコンテナの root からの相対パスとなるはずです。例えば、以下のように書きます。 - -proc proc proc nodev,noexec,nosuid 0 0 - + + proc proc proc nodev,noexec,nosuid 0 0 + - この例は、root ファイルシステムがどこにあっても、コンテナの /proc 以下に proc ファイルシステムをマウントします。 - これは、ブロックデバイスがバックエンドのファイルシステムだけでなく、コンテナのクローンにも柔軟に対応できます。 + この例は、root ファイルシステムがどこにあっても、コンテナの /proc 以下に proc ファイルシステムをマウントします。これは、ブロックデバイスがバックエンドのファイルシステムだけでなく、コンテナのクローンにも柔軟に対応できます。 以下にブラックリストのポリシーの例を示します。これは mknod 以外の全てのシステムコールが許可され、mknod が呼ばれると、何もせずに単に 0(成功) を返します。 - -2 -blacklist -mknod errno 0 - + + + 2 + blacklist + mknod errno 0 + + @@ -2728,37 +2720,37 @@ mknod errno 0 この例は、control group を使って、複雑なネットワークスタックを作成し、新しいホスト名を指定し、いくつかの場所をマウントし、ルートファイルシステムを変更するような複雑な設定を示します。 - lxc.utsname = complex - lxc.network.type = veth - lxc.network.flags = up - lxc.network.link = br0 - lxc.network.hwaddr = 4a:49:43:49:79:bf - lxc.network.ipv4 = 10.2.3.5/24 10.2.3.255 - lxc.network.ipv6 = 2003:db8:1:0:214:1234:fe0b:3597 - lxc.network.ipv6 = 2003:db8:1:0:214:5432:feab:3588 - lxc.network.type = macvlan - lxc.network.flags = up - lxc.network.link = eth0 - lxc.network.hwaddr = 4a:49:43:49:79:bd - lxc.network.ipv4 = 10.2.3.4/24 - lxc.network.ipv4 = 192.168.10.125/24 - lxc.network.ipv6 = 2003:db8:1:0:214:1234:fe0b:3596 - lxc.network.type = phys - lxc.network.flags = up - lxc.network.link = dummy0 - lxc.network.hwaddr = 4a:49:43:49:79:ff - lxc.network.ipv4 = 10.2.3.6/24 - lxc.network.ipv6 = 2003:db8:1:0:214:1234:fe0b:3297 - lxc.cgroup.cpuset.cpus = 0,1 - lxc.cgroup.cpu.shares = 1234 - lxc.cgroup.devices.deny = a - lxc.cgroup.devices.allow = c 1:3 rw - lxc.cgroup.devices.allow = b 8:0 rw - lxc.mount = /etc/fstab.complex - lxc.mount.entry = /lib /root/myrootfs/lib none ro,bind 0 0 - lxc.rootfs = /mnt/rootfs.complex - lxc.cap.drop = sys_module mknod setuid net_raw - lxc.cap.drop = mac_override + lxc.utsname = complex + lxc.network.0.type = veth + lxc.network.0.flags = up + lxc.network.0.link = br0 + lxc.network.0.hwaddr = 4a:49:43:49:79:bf + lxc.network.0.ipv4 = 10.2.3.5/24 10.2.3.255 + lxc.network.0.ipv6 = 2003:db8:1:0:214:1234:fe0b:3597 + lxc.network.0.ipv6 = 2003:db8:1:0:214:5432:feab:3588 + lxc.network.1.type = macvlan + lxc.network.1.flags = up + lxc.network.1.link = eth0 + lxc.network.1.hwaddr = 4a:49:43:49:79:bd + lxc.network.1.ipv4 = 10.2.3.4/24 + lxc.network.1.ipv4 = 192.168.10.125/24 + lxc.network.1.ipv6 = 2003:db8:1:0:214:1234:fe0b:3596 + lxc.network.2.type = phys + lxc.network.2.flags = up + lxc.network.2.link = dummy0 + lxc.network.2.hwaddr = 4a:49:43:49:79:ff + lxc.network.2.ipv4 = 10.2.3.6/24 + lxc.network.2.ipv6 = 2003:db8:1:0:214:1234:fe0b:3297 + lxc.cgroup.cpuset.cpus = 0,1 + lxc.cgroup.cpu.shares = 1234 + lxc.cgroup.devices.deny = a + lxc.cgroup.devices.allow = c 1:3 rw + lxc.cgroup.devices.allow = b 8:0 rw + lxc.mount = /etc/fstab.complex + lxc.mount.entry = /lib /root/myrootfs/lib none ro,bind 0 0 + lxc.rootfs = /mnt/rootfs.complex + lxc.cap.drop = sys_module mknod setuid net_raw + lxc.cap.drop = mac_override