From: KATOH Yasufumi Date: Thu, 23 Jan 2014 10:56:41 +0000 (+0900) Subject: doc: Add Japanese lxc.container.conf(5), lxc.system.conf(5) and update lxc.conf(5) X-Git-Tag: lxc-1.0.0.beta3~48 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fb261f53fcad6a04473172c9c9b68ae1cc5afc7b;p=thirdparty%2Flxc.git doc: Add Japanese lxc.container.conf(5), lxc.system.conf(5) and update lxc.conf(5) * update for commit 55fc19a1042bca36ae431cb4a51c2abc0ca4d801 * fix typo in English lxc.system.conf(5) Signed-off-by: KATOH Yasufumi Acked-by: Stéphane Graber --- diff --git a/configure.ac b/configure.ac index 736625f4c..297e760f9 100644 --- a/configure.ac +++ b/configure.ac @@ -654,6 +654,8 @@ AC_CONFIG_FILES([ doc/ja/lxc-wait.sgml doc/ja/lxc.conf.sgml + doc/ja/lxc.container.conf.sgml + doc/ja/lxc.system.conf.sgml doc/ja/lxc-usernet.sgml doc/ja/lxc.sgml doc/ja/common_options.sgml diff --git a/doc/ja/Makefile.am b/doc/ja/Makefile.am index 45b3aa29e..14c104531 100644 --- a/doc/ja/Makefile.am +++ b/doc/ja/Makefile.am @@ -30,6 +30,8 @@ man_MANS = \ lxc-wait.1 \ \ lxc.conf.5 \ + lxc.container.conf.5 \ + lxc.system.conf.5 \ lxc-usernet.5 \ \ lxc.7 diff --git a/doc/ja/lxc.conf.sgml.in b/doc/ja/lxc.conf.sgml.in index 18a3ec352..856849d05 100644 --- a/doc/ja/lxc.conf.sgml.in +++ b/doc/ja/lxc.conf.sgml.in @@ -2,10 +2,10 @@ lxc: linux Container library -(C) Copyright IBM Corp. 2007, 2008 +(C) Copyright Canonical Ltd. 2014 Authors: -Daniel Lezcano +Stéphane Graber This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public @@ -45,9 +45,9 @@ by KATOH Yasufumi - linux コンテナ設定ファイル + LXC の設定ファイル @@ -56,2047 +56,123 @@ by KATOH Yasufumi - linux コンテナ (lxc) は,常に使用する前に作成されます. - コンテナは,プロセスがコンテナを使う時に仮想化/隔離するシステムリソースのセットを定義することによって作成します. - デフォルトでは,pid, sysv ipc, マウントポイントが仮想化され,隔離されます. - 他のシステムリソースは,設定ファイルで明確に定義されない限りは,コンテナをまたいで共有されます. - 例えば,もしネットワークが設定されていなければ,コンテナを作成する側とコンテナでネットワークを共有します. - しかし,ネットワークが指定されれば,新しいネットワークスタックがコンテナ用に作成され,コンテナは作成元の環境のネットワークを使いません. + LXC の設定は 2 つのパートに分かれます.コンテナの設定とシステムの設定です. - - - 設定ファイルは,コンテナに割り当てられる様々なシステムリソースを定義します. - 現時点では,utsname,ネットワーク,マウントポイント,root ファイルシステム,ユーザ名前空間,control groups がサポートされます. - - - - - 設定ファイルのオプション一つを,key = value の形で一行で表します. - '#' は,その行はコメントであることを示します. - - - - <!-- Configuration -->設定 - - - 複数の関係するコンテナの管理を容易にするために,コンテナの設定ファイルに別のファイルをロードすることが可能です. - 例えば,ネットワークの設定を,複数のコンテナから include させるように 1 つのファイルに定義することが可能です. - その場合,コンテナが他のホストに移動すると,そのファイルだけを更新する必要があるかもしれません. - - - - - - - - - - - include させたいファイルを指定します. - include するファイルは,lxc 設定ファイルのフォーマットとして有効でなければいけません. - - - - - - - - <!-- Architecture -->アーキテクチャ - - - コンテナに対してアーキテクチャを設定することが可能です. - 例えば,64 ビットのホスト上で 32 ビットのバイナリを動かすために 32 ビットアーキテクチャを設定することが可能です. - この設定を行うことにより,パッケージのダウンロードを行うなどの作業のうち,アーキテクチャ名に依存するような作業を行うコンテナスクリプトの修正を行います. - - - - - - - - - - - コンテナに設定するアーキテクチャを指定します. - - - - 有効なオプションは以下です. - , - , - , - - - - - - - - - - <!-- Hostname -->ホスト名 - - - utsname セクションは,コンテナに設定されるホスト名を定義します. - コンテナは,システムのホスト名を変えることなく,自身のホスト名を持つ事が可能です. - このことにより,ホスト名はコンテナ専用となります. - - - - - - - - - - コンテナのホスト名を指定します. - - - - - - - <!-- Halt signal -->クリーンなシャットダウン時のシグナル + <!-- Container configuration -->コンテナの設定 - lxc-stop がコンテナをクリーンにシャットダウンするためにコンテナの init プロセスに送るシグナル名か番号を指定することができます. - init システムによって,クリーンなシャットダウンを行うために使うシグナルは異なります. - このオプションではシグナルとして kill(1) で使う形式を指定することができます. - 例えば SIGKILL, SIGRTMIN+14, SIGRTMAX-10 のような形式,もしくは数字を指定します.デフォルトのシグナルは SIGPWR です. + コンテナの設定は,コンテナのディレクトリ内の config に設定します. - - - - - - - - - コンテナをシャットダウンするのに使うシグナルを指定します - - - - - - - <!-- Stop signal -->強制停止時のシグナル - lxc-stop がコンテナを強制的にシャットダウンするために送るシグナル名か番号を指定することができます. - このオプションではシグナルとして kill(1) で使う形式を指定することができます. - 例えば SIGKILL, SIGRTMIN+14, SIGRTMAX-10 のような形式,もしくは数字を指定します.デフォルトのシグナルは SIGKILL です. - - - - - - - - - - コンテナを停止するのに使用するシグナルを指定します. - - - - - - - - <!-- Network -->ネットワーク - - - ネットワークセクションは,コンテナ内でどのようにネットワークを仮想化するかを定義します. - ネットワークの仮想化はレイヤー 2 で作動します. - ネットワークの仮想化を使用するためには,コンテナのネットワークインターフェースを定義しなければなりません. - いくつかの仮想インターフェースをアサインすることができます. - そして,仮に物理ネットワークインターフェースが一つしかなくても,コンテナ内でいくつもの仮想インターフェースを使うことができます. - - - - - - - - - - コンテナがどの種類のネットワーク仮想化を使うかを指定します. - 一つのネットワークの設定ごとに フィールドを指定します. - このように,一つのコンテナに複数のネットワークインターフェースを割り当てることができるだけでなく,同じコンテナに対して複数のネットワーク仮想化の種類を指定することが出来ます. - 仮想化の種類は以下の値を取る事が出来ます: - - - - - ホストのネットワーク名前空間を共有します. - これにより,ホストのネットワークデバイスをコンテナ内で使うことが可能になります. - もしコンテナもホストも init として upstart を使っている場合,(例えば) コンテナ内で 'halt' を実行すると,ホストがシャットダウンしてしまうことにもなります. - - - - - ループバックインターフェースだけを作成します. - - - - - 一方がコンテナに,もう一方が で指定されるブリッジにアタッチされる,ピアネットワークデバイスを作成します. - もし,ブリッジが指定されていない場合,veth ペアデバイスは作成されますが,ブリッジにはアタッチされません. - ブリッジはシステムで事前に設定する必要があります. - さもなければ,lxc はコンテナ外のいかなる設定も扱うことはできないでしょう. - デフォルトでは,lxc はコンテナの外部に属するネットワークデバイスに対する名前を決定し,lxc はこの名前を使います. - しかし,もしこの名前を自分で指定したい場合, オプションを使って名前を設定し,lxc に対して指定をすることができます. - - - - - vlan インターフェースは で指定されたインターフェースとリンクし,コンテナに割り当てられます. - vlan の指定は オプションで指定します. - - - - - macvlan インターフェースは により指定されるインターフェースとリンクし,コンテナに割り当てられます. - でモードを指定すると,その macvlan の指定を,同じ上位デバイスで異なる macvlan の間の通信をする時に使います. - 受け入れられたモードが であれば,デバイスは同じ上位デバイスの他のデバイスとの通信を行いません (デフォルト). - 新しい仮想イーサネットポート集約モード (Virtual Ethernet Port Aggregator (VEPA)) である は,隣接したポートが,ソースとデスティネーションの両方が macvlan ポートに対してローカルであるフレームを全て返すと仮定します. - すなわち,ブリッジが reflective relay として設定されているということです. - 上位デバイスから入ってくるブロードキャストフレームは,VEPA モードである全ての macvlan インターフェースに送りつけられます. - ローカルのフレームはローカルには配送されません. - の指定は,同じポートの異なる macvlan インターフェースの間のシンプルなブリッジとして動作します. - あるインターフェースから他のインターフェースへのフレームは,直接配送され,外部には送出されません. - ブロードキャストフレームは,全ての他のブリッジと外部のインターフェースに対して送られます. - しかし,reflective relay からフレームが返ってきたときは,再度それを配送することはしません. - 全ての MAC アドレスを知っているので,ブリッジモジュールのように,macvlan ブリッジモードは学習や STP の必要はありません. - - - - - で指定された,すでに存在しているインターフェースがコンテナに割り当てられます. - - - - - - - - - - - - ネットワークに対して行うアクションを指定します. - - - - - インターフェースを起動させます. - - - - - - - - - - - - 実際のネットワークトラフィックに使うインターフェースを指定します. - - - - - - - - - - - - インターフェースに対する MTU を指定します. - - - - - - - - - - - - インターフェース名は動的に割り当てられます. - しかし,もしコンテナが使用する設定ファイルが一般的な名前を使用するために,他の特定の名前が必要であれば (例えば eth0 など),コンテナ内のインターフェースは,このオプションで指定した名前にリネームされます. - - - - - - - - - - - - 仮想インターフェースの MAC アドレスは,デフォルトでは動的に割り当てられます. - しかし,MAC アドレスの衝突や,リンクローカルIPv6 アドレスを常に同じにした場合などは,このオプションが必要です. - アドレス中の "x" という文字は,ランダムな値に置き換えられます. - これによりテンプレートに hwaddr を設定することが可能になります. - - - - - - - - - - - - 仮想インターフェースに割り当てる ipv4 アドレスを指定します. - 複数行により複数の ipv4 アドレスを指定します. - このアドレスは x.y.z.t/m というフォーマットで指定します. - 例えば,192.168.1.123/24.ブロードキャストアドレスも同じ行の ipv4 アドレスのすぐ後で指定しなくてはなりません. - - - - - - - - - - - - コンテナでゲートウェイとして使う IPv4 アドレスを指定します. - アドレスは x.y.z.t というフォーマットです. - 例えば,192.168.1.123. - - という特別な値を記述する事も可能です. - これは ( で指定した) ブリッジインターフェースの最初のアドレスを使用し,それをゲートウェイに使うという意味になります. - はネットワークタイプとして と を指定している時だけ有効となります. - - - - - - - - - - - - - 仮想インターフェースに割り当てる ipv6 アドレスを指定します. - 複数行により複数の ipv6 アドレスを指定します. - このアドレスは x::y/m というフォーマットで指定します. - 例えば,2003:db8:1:0:214:1234:fe0b:3596/64. - - - - - - - - - - - - コンテナでゲートウェイとして使う IPv6 アドレスを指定します. - アドレスは x::y というフォーマットです.例えば,2003:db8:1:0::1. - - という特別な値を記述する事も可能です. - これは ( で指定した) ブリッジインターフェースの最初のアドレスを使用し,それをゲートウェイに使うという意味になります. - はネットワークタイプとして と を指定している時だけ有効となります. - - - - - - - - - - - - ホスト側から使われる,ネットワークの作成と設定が済んだ後に実行するスクリプトを指定します. - 以下の引数がスクリプトに渡されます: コンテナ名,設定セクション名(net). - その後の引数はスクリプトのフックで使われる設定セクションに依存します. - 以下がネットワークシステムによって使われます: 実行コンテキスト (up),ネットワークのタイプ (empty/veth/macvlan/phys) - ネットワークのタイプによっては,更に別の引数が渡されるかもしれません: veth/macvlan/phys の場合 (ホスト側の) デバイス名 - - - - スクリプトからの標準出力は debug レベルでロギングされます. - 標準エラー出力はロギングされません. - しかし,フックの標準エラー出力を標準出力にリダイレクトすることにより保存することは可能です. - - - - - - - - - - - - ホスト側から使われる,ネットワークを破壊する前に実行するスクリプトを指定します. - 以下の引数がスクリプトに渡されます: コンテナ名,設定セクション名(net). - その後の引数はスクリプトのフックで使われる設定セクションに依存します. - 以下がネットワークシステムによって使われます: 実行コンテキスト (up),ネットワークのタイプ (empty/veth/macvlan/phys). - ネットワークのタイプによっては,更に別の引数が渡されるかもしれません: veth/macvlan/phys.そして最後に (ホスト側の) デバイス名が渡されます. - - - - スクリプトからの標準出力は debug レベルでロギングされます. - 標準エラー出力はロギングされません. - しかし,フックの標準エラー出力を標準出力にリダイレクトすることにより保存することは可能です. - - - - - - - - - <!-- New pseudo tty instance (devpts) -->新しい擬似端末のインスタンス (devpts) - - - さらに厳しい隔離のために,コンテナは自身のプライベートな pseudo tty (擬似端末) を持つことが可能です. - - - - - - - - - - もし設定された場合,コンテナは新しい psuedo tty インスタンスを持ち,それを自身のプライベートとします. - この値は pts インスタンスに許可される pseudo tty の最大数を指定します (この制限はまだ実装されていません). - - - - - - - - <!-- Container system console -->コンテナのシステムコンソール - - - コンテナでルートファイルシステムを持つように設定されており,inittab ファイルでコンソールの使用が設定されている場合,このコンソールの出力がどこになされるのかを指定したいと思うでしょう. - - - - - - - - - - コンソールの出力が書かれるファイルのパスを指定します.'none' というキーワードは,単純にコンソールを無効にします. - この設定は,アプリケーションが書き込む事ができるコンソールデバイスファイルが rootfs に存在する場合,メッセージがホスト側に出力されるので危険です. - - - - - - - - <!-- Console through the ttys -->tty を通したコンソール - - - このオプションはコンテナが root ファイルシステムを持つように設定されており,inittab ファイルで tty 上に getty の起動が設定されている場合に役に立ちます. - このオプションはコンテナで利用できる tty の数を指定します. - inittab ファイルに設定する getty の数は,このオプションの指定する tty の数より大きくしてはいけません. - さもなければ,超過した分の getty セッションはコンソールか /var/log/messages にうっとうしいメッセージを生死を表示しながら,永久に生死を繰り返すでしょう. - - - - - - - - - - コンテナに作成出来る tty の数を指定します. - - - - - - - - <!-- Console devices location -->コンソールデバイスの位置 - - - LXC のコンソールはホストによって作られ,コンテナ内で要求されたデバイスに bind マウントされた Unix98 PTY 経由で提供されます. - デフォルトでは /dev/console と /dev/ttyN に bind マウントされます. - これはゲスト内でのパッケージのアップグレードを妨げる可能性があります. - なので /dev 以下のディレクトリを指定することができます. - LXC はこのディレクトリ以下にファイルを作成し,これらのファイルを bind マウントします. - そして,これらの (作成された) ファイルは /dev/console と /dev/ttyN にシンボリックリンクされます. - シンボリックリンクを消去したり置き換えたりすることは可能ですから,パッケージのアップグレードは成功します. - - - - - - - - - - コンテナのコンソールデバイスを作成するための /dev 以下のディレクトリを指定します. - - - - - - - - <!-- /dev directory -->/dev ディレクトリ - - - デフォルトでは,lxc はコンテナの /dev については何も行いません. - これは,コンテナの rootfs で必要な設定を行えるようにするものです. - lxc.autodev が 1 に設定されている場合,コンテナの rootfs をマウントした後,LXC は新しい tmpfs を /dev 以下にマウントします (100k 制限の). - そして初期デバイスの最小限のセットを作成します. - これは,"systemd" ベースの "init" 環境のコンテナを起動する時に通常必要ですが,他の環境の場合はオプショナルなものです. - コンテナの /dev ディレクトリ内の追加デバイスは フックを使用して作成されます. + 必要最小限の設定は,コンテナの作成時に選択したテンプレートの推奨するデフォルトと,default.conf ファイルに記載されているデフォルトに追加する設定から生成されます. - - - - - - - - - コンテナの起動時に LXC が /dev をマウントして,最小限の /dev を作成しているようにするには,これを 1 に設定してください. - - - - - - - <!-- Enable kmsg symlink -->kmsg のシンボリックリンクの有効化 - /dev/kmsg の /dev/console へのシンボリックリンクとしての作成を有効にします.デフォルトは 1 です. - - - - - - - - - - /dev/kmsg のシンボリックリンクを無効にするには 0 を設定してください. - - - - - - - - <!-- Mount points -->マウントポイント - - - マウントポイントセクションは,マウントするための区別された場所を指定します. - これらのマウントポイントは,コンテナだけに見え,コンテナ外で実行されるプロセスから見えることはありません. - 例えば,/etc や /var や /home をマウントするときに役に立つでしょう. - - - - - - - - - - マウントに関する情報が書かれた fstab フォーマットのファイルの場所を指定します. - rootfs がイメージファイルやブロックデバイスで,fstab ファイルがこの rootfs 内のどこかをマウントするために使われる場合,rootfs のマウントポイントのパスはデフォルトパスである @LXCROOTFSMOUNT@ か,もしくは が指定されている場合は,その値を前に付ける必要があります. - ファイルシステムがイメージファイルやブロックデバイスからマウントされている場合,3 つ目のフィールド (fs_vfstype) は - - mount - 8 - - のように auto を指定することはできず,明確に指定しなければいけません. - - - - - - - - - - - - fstab フォーマットの一行と同じフォーマットのマウントポイントの指定をします. - - - - - - - - - - - - 標準のカーネルファイルシステムで自動的にマウントするものを指定します. - これは劇的に設定を容易にする可能性があります. - - - - - - (or ): - /proc を読み書き可能でマウントします. - ただし,/proc/sys と /proc/sysrq-trigger は,セキュリティとコンテナの隔離の目的でリードオンリーで再マウントされます. - - - - - - : - /proc を読み書き可能でマウントします. - - - - - - (or ): - /sys を,セキュリティとコンテナの隔離の目的でリードオンリーでマウントします. - - - - - - : - /sys を読み書き可能でマウントします. - - - - - - (or ): - /sys/fs/cgroup を tmpfs でマウントし,そのコンテナの追加が行われた全ての階層構造に対するディレクトリを作製し,その cgroup の名前でその中にサブディレクトリを作製し,そのコンテナ自身の cgroup をそのディレクトリにバインドマウントします. - コンテナは自身の cgroup ディレクトリに書き込みが可能ですが,親ディレクトリはリードオンリーで再マウントされているため書き込めません. - - - - - - : - と同様にマウントされますが,全てリードオンリーでマウントされます. - - - - - - : - と同様にマウントされますが,全て読み書き可能でマウントされます. - コンテナ自身の cgroup に至るまでのパスも書き込み可能になることに注意が必要ですが,cgroup ファイルシステムにはならず, - /sys/fs/cgroup の tmpfs の一部分になるでしょう. - - - - - - (or ): - /sys/fs/cgroup を tmpfs でマウントし,そのコンテナの追加が行われた全ての階層構造に対するディレクトリを作製し,ホストからコンテナまでの階層構造を全てバインドマウントし,コンテナ自身の cgroup を除いてリードオンリーにします. - と比べると,コンテナ自身の cgroup に至るまでの全てのパスが tmpfs の下層のシンプルなディレクトリとなり,コンテナ自身の cgroup の外ではリードオンリーになりますが,/sys/fs/cgroup/$hierarchy はホストの全ての cgroup 階層構造を含みます. - これにより,コンテナにはかなりの情報が漏洩します. - - - - - - : - と同様にマウントされますが,全てリードオンリーでマウントされます. - - - - - - : - と同様にマウントされますが,全て読み書き可能でマウントされます. - この場合,コンテナは自身の cgroup から脱出する可能性があることに注意してください (コンテナが CAP_SYS_ADMIN を持ち,自身で cgroup ファイルシステムをマウント可能なら,いずれにせよそのようにするかもしれないことにも注意してください). - - - - - - 例: - - - lxc.mount.auto = proc sys cgroup - lxc.mount.auto = proc:rw sys:rw cgroup-full:rw - - - - - - - - - <!-- Root file system -->ルートファイルシステム - - - コンテナのルートファイルシステムは,ホストのルートファイルシステムと異なるようにすることも可能です. - - - - - - - - - - コンテナのルートファイルシステムになるディレクトリを指定します. - この値はイメージファイル,ディレクトリ,ブロックデバイスのどれかを取ることができます. - もし指定されない場合,コンテナはホストとルートファイルシステムを共有します. - - - - - - - - - - - - root ファイルシステムの変更の前に, を再帰的にどこにバインドするのかを指定します.これは - - pivot_root - 8 - - システムコールが確実に成功する事を保証します. - どんなディレクトリでも良く,デフォルトでも通常は動くはずです. - - - - - - - - - - - - 元の root ファイルシステムを, 以下のどこに移動させるかを からの相対パスで指定します. - デフォルトは mnt です. - これはもし必要であれば作成され,そしてコンテナのセットアップの間,全てアンマウントされた後で消去されます. - - - - - - - - Control group - - - CONTROL GROUP セクションは,(lxc とは) 別のサブシステムの設定を含みます. - lxc は,このサブシステム名の正しさはチェックしません. - 実行時のエラーを検出するのに不便ですが,別の将来のサブシステムをサポート出来るという有利な点もあります. - - - - - - - - - - 設定する control group の値を指定します. - サブシステム名は,control group のそのままの名前です. - 許される名前や値の書式は LXC が指示することはなく,コンテナが実行された時に実行されている Linux カーネルの機能に依存します. - 例えば - - - - - - - - <!-- Capabilities -->ケーパビリティ - - - コンテナが root 権限で実行されていても,コンテナ内ではケーパビリティ (capabilities) を削除する事は可能です. - - - - - - - - - - コンテナ内で削除するケーパビリティ (capability) を指定します. - 一行でスペース区切りで複数のケーパビリティを指定することも可能です. - 指定は,"CAP_" というプレフィックスなしで,小文字でケーパビリティを指定します. - 例えば,CAP_SYS_MODULE というケーパビリティは sys_module と指定する必要があります. - 詳しくは以下を参照してください. - - capabilities - 7 - - - - - - - - - - - - コンテナ内で維持するケーパビリティを指定します. - 指定した以外の全てのケーパビリティはドロップされます. - - - - - - - - <!-- Apparmor profile -->Apparmor プロファイル - - - lxc が apparmor サポートでコンパイルされ,インストールされている場合で,ホストで apparmor が有効な場合,コンテナが従って動くべき apparmor プロファイルは,コンテナの設定で指定することが可能です. - デフォルトは lxc-container-default です. - - - - - - - - - - コンテナが従うべき apparmor プロファイルを指定します. - コンテナが apparmor による制限を受けないように設定するには,以下のように設定します. - - lxc.aa_profile = unconfined - - - - - - - <!-- SELinux context -->SELinux コンテキスト - - - lxc が SELinux サポートでコンパイルされ,インストールされている場合で,ホストで SELinux が有効な場合,コンテナが従って動くべき SELinux コンテキストは,コンテナの設定で指定することが可能です. - デフォルトは unconfined_t であり,これは lxc がコンテキストを変えないという意味になります. - - - - - - - - - - コンテナが従うべき SELinux コンテキストを指定するか,unconfined_t を指定します.例えば以下のように設定します. - - lxc.se_context = unconfined_u:unconfined_r:lxc_t:s0-s0:c0.c1023 - - - - - - - <!-- Seccomp configuration -->Seccomp の設定 - - - コンテナは,起動時に seccomp プロファイルをロードすることで,利用可能なシステムコールを減らして起動することが可能です. - seccomp の設定ファイルは,最初の行がバージョン番号 (現在は 1 でなければならない) で,2 行目はポリシーのタイプ ('whitelist' でなければならない),で始まる必要があり,その後に 1 行ごとに利用可能なシステムコールの番号が書かれたリストが続きます. + default.conf ファイルは @LXC_DEFAULT_CONFIG@ に置かれます. + 非特権コンテナの場合には ~/.config/lxc/default.conf を使用します. - - - - - - - - - コンテナがスタートする前にロードする seccomp の設定を含むファイルを指定します. - - - - - - - <!-- UID mappings -->UID のマッピング - コンテナは,ユーザとグループの id のマッピングを持った専用のユーザ名前空間で起動することが可能です. - たとえば,コンテナ内のユーザ id 0 を,ホストのユーザ id 200000 にマッピングすることが可能です. - コンテナの root ユーザはコンテナ内では特権を持ちますが,ホストでは特権を持ちません. - 通常は,システムコンテナは id の範囲を要求し,それをマッピングします. - 例えば,コンテナ内のユーザとグループの id 0 から 20,000 を 200,000 から 220,000 にマッピングします. + Details about the syntax of this file can be found in: + + lxc.container.conf + 5 + + --> + このファイルの書式は以下を参照してください. + + lxc.container.conf + 5 + - - - - - - - - - 4 つの値を記述する必要があります. - 最初の文字は 'u' か 'g' のどちらかで,ユーザかグループの ID のどちらをマッピングするかを指定します. - 次はコンテナのユーザ名前空間内に現れる最初のユーザ ID です. - その次は,そのユーザ ID のホスト上での値です. - 最後は,ID のマッピングをいくつ連続して行うかの数を指定します. - - - - - <!-- Container hooks -->コンテナのフック - - - コンテナのフックは,コンテナの存続期間の色々な場面で実行することのできるプログラムやスクリプトです. - + <!-- System configuration -->システム設定 - コンテナのフックが実行されるとき,情報がコマンドライン引数と環境変数の両方を通して渡されます.引数は: - - コンテナ名 - セクション (常に 'lxc') - フックのタイプ ('clone' や 'pre-mount' など) - 追加の引数.clone フックの場合,lxc-clone に渡される追加の引数は,フックへの引数として追加されます. - - 以下の環境変数がセットされます. - - LXC_NAME: コンテナ名 - LXC_ROOTFS_MOUNT: マウントされた root ファイルシステムへのパス - LXC_CONFIG_FILE: コンテナの設定ファイルのパス - LXC_SRC_NAME: clone フックの場合,元のコンテナの名前 - LXC_ROOTFS_PATH: コンテナの lxc.rootfs エントリ.これはマウントされた rootfs が存在する場所にはならないでしょう.それには LXC_ROOTFS_MOUNT を使用してください. - - - - - スクリプトからの標準出力は debug レベルでロギングされます. - 標準エラー出力はロギングされません. - しかし,フックの標準エラー出力を標準出力にリダイレクトすることにより保存することは可能です. + The system configuration is located at + @LXC_GLOBAL_CONF@ or + ~/.config/lxc/lxc.conf for unprivileged + containers. + --> + システムの設定には @LXC_GLOBAL_CONF@ を使用します.非特権コンテナの場合は ~/.config/lxc/lxc.conf を使用します. - - - - - - - - - コンテナの tty,コンソールの作成,マウントが実行される前に,ホストの名前空間内で実行するフック. - - - - - - - - - - - - - コンテナのファイルシステムの名前空間で実行されますが,rootfs が設定される前に実行するフック. - これにより rootfs の操作が可能になります. - 例えば,暗号化されたファイルシステムのマウントなどです. - このフック内でなされるマウントはホストには影響しません (mounts propagation を除いて). - なので,それらはコンテナがシャットダウンする時に自動的にクリーンアップされます. - - - - - - - - - - - - - マウントが完了した後ですが,pivot_root の前にコンテナの名前空間で実行されるフック. - - - - - - - - - - - - - == 1 が設定されている場合で,マウントが完了し,マウント時のフックも実行された後ですが,pivot_root の前にコンテナの名前空間で実行するフック. - このフックの目的は,systemd ベースのコンテナ向けの autodev オプションが設定されている時に,コンテナの /dev ディレクトリを設定するのを支援することです.コンテナの /dev ディレクトリは,このフックが実行される時有効な ${} 環境変数からの相対パスとなります. - - - - - - - - - - - - - コンテナの init が実行される直前にコンテナの名前空間で実行されるフック. - コンテナ内で利用可能なプログラムである必要があります. - - - - - - - - - - - - - コンテナがシャットダウンされた後にホストの名前空間で実行するフック. - - - - - - - - - - - - - コンテナが新しいコンテナにクローンされる際に実行されるフック.詳しくは - lxc-clone - 1 - を参照してください. - - - - - - - <!-- Container hooks Environment Variables -->コンテナのフックで使える環境変数 - 起動時のフックに設定情報を提供し,フックの機能を助けるための環境変数がいくつか利用可能です. - 全ての変数が全てのコンテキストで利用可能なわけではありません. - 具体的には,全てのパスはホストシステム上のパスであり,そのため, フックの時点では使用できません. + This configuration file is used to set values such as default + lookup paths and storage backend settings for LXC. + --> + この設定ファイルは LXC のデフォルトパスやストレージバックエンドの設定のような値を設定する時に使用します. - - - - - - - - - LXC コンテナの名前.共通のログ環境内でのログメッセージに使うときに便利です.[] - - - - - - - - - - - - - コンテナの設定ファイルのホスト上でのパス. - これは,他の方法では得られない追加の設定情報を見つけるために,コンテナに,元の,トップレベルの設定ファイルの位置を与えるものです. [] - - - - - - - - - - - - - 設定されている場合のコンテナのコンソール出力のパス. - [] [] - - - - - - - - - - - - - 設定されている場合のコンテナのコンソールログ出力のパス. - [] - - - - - - - - - - - - - 初期にコンテナがマウントされる場所. - これは,コンテナインスタンスが起動するためのコンテナの rootfs へのホスト上のパスであり,インスタンスのための移行が行われる場所です. - [] - - - - - - - - - - - - - rootfs.mount へマウントされるコンテナのルートへのホスト上のパスです. - - - - - - - - - <!-- Logging -->ロギング - - - ロギングはコンテナごとに設定することが可能です. - デフォルトでは,lxc パッケージのコンパイル条件に依存し,コンテナのスタートアップは ERROR レベルでのみロギングされ,コンテナのパス以下か,@LOGPATH@ 以下のどちらかにコンテナ名 (の後に '.log' が付与される) をもとにした名前でロギングされます. - - - - デフォルトのログレベルとログファイルは両方とも,コンテナの設定ファイル内で指定され,デフォルトの値を上書きします. - 同様に,設定ファイルのエントリは lxc-start のコマンドラインオプションで上書きすることも可能です. - - - - - - - - - - ログを取得するレベル. - ログレベルは 0..8 の範囲の整数です. - 数字が小さいほど冗長なデバッグを意味します. - 具体的には,0 = trace, 1 = debug, 2 = info, 3 = notice, 4 = warn, 5 = error, 6 = critical, 7 = alert, and 8 = fatal です. - 指定されない場合,レベルのデフォルトは 5 (error) で,それ以上のエラーがロギングされます. - - - - (フックスクリプトやネットワークインターフェースの起動,停止時のスクリプトのような) スクリプトが呼ばれた時,スクリプトの標準出力は level 1 の debug でロギングされます. - - - - - - - - - - - ログ情報を書き込むファイル. - - - - - - - <!-- Autostart -->自動起動 - - - 自動起動オプションでは,自動起動させるコンテナと順番の設定が可能です. - このオプションは LXC ツールが直接使用するか,ディストリビューションが提供する外部ツールが使用するかもしれません. - - - - - - - - - - - コンテナを自動起動させるかどうかを設定します. - 有効な値は 0(オフ) か 1(オン) です. - - - - - - - - - - - コンテナを起動させた後,次のコンテナを起動させるまでにどれくらい (秒) 待つかを設定します. - - - - - - - - - - - 多数の自動起動させるコンテナがある場合のコンテナの起動順を決めるのに使う整数を指定します. - - - - - - - - - - - コンテナを追加したいコンテナグループ名を指定します. - (複数回使用される可能性のある) 複数の値を設定可能です. - 設定されたグループは,関連する一連のコンテナを起動させるために使われます. - - - - - - - - - - <!-- Examples -->例 - - - 以下に紹介するいくつかの例に加えて,他の設定例が @DOCDIR@/examples にあります. - - - <!-- Network -->ネットワーク - この設定は,片方をブリッジである br0 と接続される veth ペアデバイスを使うコンテナを設定します (ブリッジは管理者によりあらかじめシステム上に設定済みである必要があります). - 仮想ネットワークデバイスは,コンテナ内では eth0 とリネームされます. - - - lxc.utsname = myhostname - lxc.network.type = veth - lxc.network.flags = up - lxc.network.link = br0 - lxc.network.name = eth0 - lxc.network.hwaddr = 4a:49:43:49:79:bf - lxc.network.ipv4 = 1.2.3.5/24 1.2.3.255 - lxc.network.ipv6 = 2003:db8:1:0:214:1234:fe0b:3597 - - - - - <!-- UID/GID mapping -->UID/GID のマッピング - - この設定は,コンテナ内のユーザとグループ両方の id 0-9999 の範囲を,ホスト上の 100000-109999 へマッピングします. - - - lxc.id_map = u 0 100000 10000 - lxc.id_map = g 0 100000 10000 - - - - - Control group - - - この設定は,アプリケーションのための control group をいくつか設定します. - cpuset.cpus は定義された cpu のみ使用できるように制限します. - cpus.share は,control group の (cpu) 優先度を指定します. - devices.allow は,特定のデバイスを使用可能にします. - - - 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 - - - - - <!-- Complex configuration -->複雑な設定 - - - この例は,control group を使って,複雑なネットワークスタックを作成し,新しいホスト名を指定し,いくつかの場所をマウントし,ルートファイルシステムを変更するような複雑な設定を示します. + Details about the syntax of this file can be found in: + + lxc.system.conf + 5 + + --> + このファイルの書式は以下を参照してください. + + lxc.system.conf + 5 + - - 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 - - See Also - chroot - 1 + lxc + 1 , - - pivot_root - 8 + lxc.container.conf + 5 , - - fstab - 5 - - + lxc.system.conf + 5 + , - capabilities - 7 + lxc-usernet + 5 - - &seealso; - - <!-- Author -->作者 - Daniel Lezcano daniel.lezcano@free.fr + Author + Stéphane Graber stgraber@ubuntu.com - + + +]> + + + + @LXC_GENERATE_DATE@ + + + lxc.container.conf + 5 + + + + lxc.container.conf + + + + LXC コンテナ設定ファイル + + + + + <!-- Description -->説明 + + + + linux コンテナ (lxc) は,常に使用する前に作成されます. + コンテナは,プロセスがコンテナを使う時に仮想化/隔離するシステムリソースのセットを定義することによって作成します. + デフォルトでは,pid, sysv ipc, マウントポイントが仮想化され,隔離されます. + 他のシステムリソースは,設定ファイルで明確に定義されない限りは,コンテナをまたいで共有されます. + 例えば,もしネットワークが設定されていなければ,コンテナを作成する側とコンテナでネットワークを共有します. + しかし,ネットワークが指定されれば,新しいネットワークスタックがコンテナ用に作成され,コンテナは作成元の環境のネットワークを使いません. + + + + + 設定ファイルは,コンテナに割り当てられる様々なシステムリソースを定義します. + 現時点では,utsname,ネットワーク,マウントポイント,root ファイルシステム,ユーザ名前空間,control groups がサポートされます. + + + + + 設定ファイルのオプション一つを,key = value の形で一行で表します. + '#' は,その行はコメントであることを示します. + + + + <!-- Configuration -->設定 + + + 複数の関係するコンテナの管理を容易にするために,コンテナの設定ファイルに別のファイルをロードすることが可能です. + 例えば,ネットワークの設定を,複数のコンテナから include させるように 1 つのファイルに定義することが可能です. + その場合,コンテナが他のホストに移動すると,そのファイルだけを更新する必要があるかもしれません. + + + + + + + + + + + include させたいファイルを指定します. + include するファイルは,lxc 設定ファイルのフォーマットとして有効でなければいけません. + + + + + + + + <!-- Architecture -->アーキテクチャ + + + コンテナに対してアーキテクチャを設定することが可能です. + 例えば,64 ビットのホスト上で 32 ビットのバイナリを動かすために 32 ビットアーキテクチャを設定することが可能です. + この設定を行うことにより,パッケージのダウンロードを行うなどの作業のうち,アーキテクチャ名に依存するような作業を行うコンテナスクリプトの修正を行います. + + + + + + + + + + + コンテナに設定するアーキテクチャを指定します. + + + + 有効なオプションは以下です. + , + , + , + + + + + + + + + + <!-- Hostname -->ホスト名 + + + utsname セクションは,コンテナに設定されるホスト名を定義します. + コンテナは,システムのホスト名を変えることなく,自身のホスト名を持つ事が可能です. + このことにより,ホスト名はコンテナ専用となります. + + + + + + + + + + コンテナのホスト名を指定します. + + + + + + + + <!-- Halt signal -->クリーンなシャットダウン時のシグナル + + + lxc-stop がコンテナをクリーンにシャットダウンするためにコンテナの init プロセスに送るシグナル名か番号を指定することができます. + init システムによって,クリーンなシャットダウンを行うために使うシグナルは異なります. + このオプションではシグナルとして kill(1) で使う形式を指定することができます. + 例えば SIGKILL, SIGRTMIN+14, SIGRTMAX-10 のような形式,もしくは数字を指定します.デフォルトのシグナルは SIGPWR です. + + + + + + + + + + コンテナをシャットダウンするのに使うシグナルを指定します + + + + + + + + <!-- Stop signal -->強制停止時のシグナル + + + lxc-stop がコンテナを強制的にシャットダウンするために送るシグナル名か番号を指定することができます. + このオプションではシグナルとして kill(1) で使う形式を指定することができます. + 例えば SIGKILL, SIGRTMIN+14, SIGRTMAX-10 のような形式,もしくは数字を指定します.デフォルトのシグナルは SIGKILL です. + + + + + + + + + + コンテナを停止するのに使用するシグナルを指定します. + + + + + + + + <!-- Network -->ネットワーク + + + ネットワークセクションは,コンテナ内でどのようにネットワークを仮想化するかを定義します. + ネットワークの仮想化はレイヤー 2 で作動します. + ネットワークの仮想化を使用するためには,コンテナのネットワークインターフェースを定義しなければなりません. + いくつかの仮想インターフェースをアサインすることができます. + そして,仮に物理ネットワークインターフェースが一つしかなくても,コンテナ内でいくつもの仮想インターフェースを使うことができます. + + + + + + + + + + コンテナがどの種類のネットワーク仮想化を使うかを指定します. + 一つのネットワークの設定ごとに フィールドを指定します. + このように,一つのコンテナに複数のネットワークインターフェースを割り当てることができるだけでなく,同じコンテナに対して複数のネットワーク仮想化の種類を指定することが出来ます. + 仮想化の種類は以下の値を取る事が出来ます: + + + + + ホストのネットワーク名前空間を共有します. + これにより,ホストのネットワークデバイスをコンテナ内で使うことが可能になります. + もしコンテナもホストも init として upstart を使っている場合,(例えば) コンテナ内で 'halt' を実行すると,ホストがシャットダウンしてしまうことにもなります. + + + + + ループバックインターフェースだけを作成します. + + + + + 一方がコンテナに,もう一方が で指定されるブリッジにアタッチされる,ピアネットワークデバイスを作成します. + もし,ブリッジが指定されていない場合,veth ペアデバイスは作成されますが,ブリッジにはアタッチされません. + ブリッジはシステムで事前に設定する必要があります. + さもなければ,lxc はコンテナ外のいかなる設定も扱うことはできないでしょう. + デフォルトでは,lxc はコンテナの外部に属するネットワークデバイスに対する名前を決定し,lxc はこの名前を使います. + しかし,もしこの名前を自分で指定したい場合, オプションを使って名前を設定し,lxc に対して指定をすることができます. + + + + + vlan インターフェースは で指定されたインターフェースとリンクし,コンテナに割り当てられます. + vlan の指定は オプションで指定します. + + + + + macvlan インターフェースは により指定されるインターフェースとリンクし,コンテナに割り当てられます. + でモードを指定すると,その macvlan の指定を,同じ上位デバイスで異なる macvlan の間の通信をする時に使います. + 受け入れられたモードが であれば,デバイスは同じ上位デバイスの他のデバイスとの通信を行いません (デフォルト). + 新しい仮想イーサネットポート集約モード (Virtual Ethernet Port Aggregator (VEPA)) である は,隣接したポートが,ソースとデスティネーションの両方が macvlan ポートに対してローカルであるフレームを全て返すと仮定します. + すなわち,ブリッジが reflective relay として設定されているということです. + 上位デバイスから入ってくるブロードキャストフレームは,VEPA モードである全ての macvlan インターフェースに送りつけられます. + ローカルのフレームはローカルには配送されません. + の指定は,同じポートの異なる macvlan インターフェースの間のシンプルなブリッジとして動作します. + あるインターフェースから他のインターフェースへのフレームは,直接配送され,外部には送出されません. + ブロードキャストフレームは,全ての他のブリッジと外部のインターフェースに対して送られます. + しかし,reflective relay からフレームが返ってきたときは,再度それを配送することはしません. + 全ての MAC アドレスを知っているので,ブリッジモジュールのように,macvlan ブリッジモードは学習や STP の必要はありません. + + + + + で指定された,すでに存在しているインターフェースがコンテナに割り当てられます. + + + + + + + + + + + + ネットワークに対して行うアクションを指定します. + + + + + インターフェースを起動させます. + + + + + + + + + + + + 実際のネットワークトラフィックに使うインターフェースを指定します. + + + + + + + + + + + + インターフェースに対する MTU を指定します. + + + + + + + + + + + + インターフェース名は動的に割り当てられます. + しかし,もしコンテナが使用する設定ファイルが一般的な名前を使用するために,他の特定の名前が必要であれば (例えば eth0 など),コンテナ内のインターフェースは,このオプションで指定した名前にリネームされます. + + + + + + + + + + + + 仮想インターフェースの MAC アドレスは,デフォルトでは動的に割り当てられます. + しかし,MAC アドレスの衝突や,リンクローカルIPv6 アドレスを常に同じにした場合などは,このオプションが必要です. + アドレス中の "x" という文字は,ランダムな値に置き換えられます. + これによりテンプレートに hwaddr を設定することが可能になります. + + + + + + + + + + + + 仮想インターフェースに割り当てる ipv4 アドレスを指定します. + 複数行により複数の ipv4 アドレスを指定します. + このアドレスは x.y.z.t/m というフォーマットで指定します. + 例えば,192.168.1.123/24.ブロードキャストアドレスも同じ行の ipv4 アドレスのすぐ後で指定しなくてはなりません. + + + + + + + + + + + + コンテナでゲートウェイとして使う IPv4 アドレスを指定します. + アドレスは x.y.z.t というフォーマットです. + 例えば,192.168.1.123. + + という特別な値を記述する事も可能です. + これは ( で指定した) ブリッジインターフェースの最初のアドレスを使用し,それをゲートウェイに使うという意味になります. + はネットワークタイプとして と を指定している時だけ有効となります. + + + + + + + + + + + + + 仮想インターフェースに割り当てる ipv6 アドレスを指定します. + 複数行により複数の ipv6 アドレスを指定します. + このアドレスは x::y/m というフォーマットで指定します. + 例えば,2003:db8:1:0:214:1234:fe0b:3596/64. + + + + + + + + + + + + コンテナでゲートウェイとして使う IPv6 アドレスを指定します. + アドレスは x::y というフォーマットです.例えば,2003:db8:1:0::1. + + という特別な値を記述する事も可能です. + これは ( で指定した) ブリッジインターフェースの最初のアドレスを使用し,それをゲートウェイに使うという意味になります. + はネットワークタイプとして と を指定している時だけ有効となります. + + + + + + + + + + + + ホスト側から使われる,ネットワークの作成と設定が済んだ後に実行するスクリプトを指定します. + 以下の引数がスクリプトに渡されます: コンテナ名,設定セクション名(net). + その後の引数はスクリプトのフックで使われる設定セクションに依存します. + 以下がネットワークシステムによって使われます: 実行コンテキスト (up),ネットワークのタイプ (empty/veth/macvlan/phys) + ネットワークのタイプによっては,更に別の引数が渡されるかもしれません: veth/macvlan/phys の場合 (ホスト側の) デバイス名 + + + + スクリプトからの標準出力は debug レベルでロギングされます. + 標準エラー出力はロギングされません. + しかし,フックの標準エラー出力を標準出力にリダイレクトすることにより保存することは可能です. + + + + + + + + + + + + ホスト側から使われる,ネットワークを破壊する前に実行するスクリプトを指定します. + 以下の引数がスクリプトに渡されます: コンテナ名,設定セクション名(net). + その後の引数はスクリプトのフックで使われる設定セクションに依存します. + 以下がネットワークシステムによって使われます: 実行コンテキスト (up),ネットワークのタイプ (empty/veth/macvlan/phys). + ネットワークのタイプによっては,更に別の引数が渡されるかもしれません: veth/macvlan/phys.そして最後に (ホスト側の) デバイス名が渡されます. + + + + スクリプトからの標準出力は debug レベルでロギングされます. + 標準エラー出力はロギングされません. + しかし,フックの標準エラー出力を標準出力にリダイレクトすることにより保存することは可能です. + + + + + + + + + <!-- New pseudo tty instance (devpts) -->新しい擬似端末のインスタンス (devpts) + + + さらに厳しい隔離のために,コンテナは自身のプライベートな pseudo tty (擬似端末) を持つことが可能です. + + + + + + + + + + もし設定された場合,コンテナは新しい psuedo tty インスタンスを持ち,それを自身のプライベートとします. + この値は pts インスタンスに許可される pseudo tty の最大数を指定します (この制限はまだ実装されていません). + + + + + + + + <!-- Container system console -->コンテナのシステムコンソール + + + コンテナでルートファイルシステムを持つように設定されており,inittab ファイルでコンソールの使用が設定されている場合,このコンソールの出力がどこになされるのかを指定したいと思うでしょう. + + + + + + + + + + コンソールの出力が書かれるファイルのパスを指定します.'none' というキーワードは,単純にコンソールを無効にします. + この設定は,アプリケーションが書き込む事ができるコンソールデバイスファイルが rootfs に存在する場合,メッセージがホスト側に出力されるので危険です. + + + + + + + + <!-- Console through the ttys -->tty を通したコンソール + + + このオプションはコンテナが root ファイルシステムを持つように設定されており,inittab ファイルで tty 上に getty の起動が設定されている場合に役に立ちます. + このオプションはコンテナで利用できる tty の数を指定します. + inittab ファイルに設定する getty の数は,このオプションの指定する tty の数より大きくしてはいけません. + さもなければ,超過した分の getty セッションはコンソールか /var/log/messages にうっとうしいメッセージを生死を表示しながら,永久に生死を繰り返すでしょう. + + + + + + + + + + コンテナに作成出来る tty の数を指定します. + + + + + + + + <!-- Console devices location -->コンソールデバイスの位置 + + + LXC のコンソールはホストによって作られ,コンテナ内で要求されたデバイスに bind マウントされた Unix98 PTY 経由で提供されます. + デフォルトでは /dev/console と /dev/ttyN に bind マウントされます. + これはゲスト内でのパッケージのアップグレードを妨げる可能性があります. + なので /dev 以下のディレクトリを指定することができます. + LXC はこのディレクトリ以下にファイルを作成し,これらのファイルを bind マウントします. + そして,これらの (作成された) ファイルは /dev/console と /dev/ttyN にシンボリックリンクされます. + シンボリックリンクを消去したり置き換えたりすることは可能ですから,パッケージのアップグレードは成功します. + + + + + + + + + + コンテナのコンソールデバイスを作成するための /dev 以下のディレクトリを指定します. + + + + + + + + <!-- /dev directory -->/dev ディレクトリ + + + デフォルトでは,lxc はコンテナの /dev については何も行いません. + これは,コンテナの rootfs で必要な設定を行えるようにするものです. + lxc.autodev が 1 に設定されている場合,コンテナの rootfs をマウントした後,LXC は新しい tmpfs を /dev 以下にマウントします (100k 制限の). + そして初期デバイスの最小限のセットを作成します. + これは,"systemd" ベースの "init" 環境のコンテナを起動する時に通常必要ですが,他の環境の場合はオプショナルなものです. + コンテナの /dev ディレクトリ内の追加デバイスは フックを使用して作成されます. + + + + + + + + + + コンテナの起動時に LXC が /dev をマウントして,最小限の /dev を作成しているようにするには,これを 1 に設定してください. + + + + + + + + <!-- Enable kmsg symlink -->kmsg のシンボリックリンクの有効化 + + + /dev/kmsg の /dev/console へのシンボリックリンクとしての作成を有効にします.デフォルトは 1 です. + + + + + + + + + + /dev/kmsg のシンボリックリンクを無効にするには 0 を設定してください. + + + + + + + + <!-- Mount points -->マウントポイント + + + マウントポイントセクションは,マウントするための区別された場所を指定します. + これらのマウントポイントは,コンテナだけに見え,コンテナ外で実行されるプロセスから見えることはありません. + 例えば,/etc や /var や /home をマウントするときに役に立つでしょう. + + + + + + + + + + マウントに関する情報が書かれた fstab フォーマットのファイルの場所を指定します. + rootfs がイメージファイルやブロックデバイスで,fstab ファイルがこの rootfs 内のどこかをマウントするために使われる場合,rootfs のマウントポイントのパスはデフォルトパスである @LXCROOTFSMOUNT@ か,もしくは が指定されている場合は,その値を前に付ける必要があります. + ファイルシステムがイメージファイルやブロックデバイスからマウントされている場合,3 つ目のフィールド (fs_vfstype) は + + mount + 8 + + のように auto を指定することはできず,明確に指定しなければいけません. + + + + + + + + + + + + fstab フォーマットの一行と同じフォーマットのマウントポイントの指定をします. + + + + + + + + + + + + 標準のカーネルファイルシステムで自動的にマウントするものを指定します. + これは劇的に設定を容易にする可能性があります. + + + + + + (or ): + /proc を読み書き可能でマウントします. + ただし,/proc/sys と /proc/sysrq-trigger は,セキュリティとコンテナの隔離の目的でリードオンリーで再マウントされます. + + + + + + : + /proc を読み書き可能でマウントします. + + + + + + (or ): + /sys を,セキュリティとコンテナの隔離の目的でリードオンリーでマウントします. + + + + + + : + /sys を読み書き可能でマウントします. + + + + + + (or ): + /sys/fs/cgroup を tmpfs でマウントし,そのコンテナの追加が行われた全ての階層構造に対するディレクトリを作製し,その cgroup の名前でその中にサブディレクトリを作製し,そのコンテナ自身の cgroup をそのディレクトリにバインドマウントします. + コンテナは自身の cgroup ディレクトリに書き込みが可能ですが,親ディレクトリはリードオンリーで再マウントされているため書き込めません. + + + + + + : + と同様にマウントされますが,全てリードオンリーでマウントされます. + + + + + + : + と同様にマウントされますが,全て読み書き可能でマウントされます. + コンテナ自身の cgroup に至るまでのパスも書き込み可能になることに注意が必要ですが,cgroup ファイルシステムにはならず, + /sys/fs/cgroup の tmpfs の一部分になるでしょう. + + + + + + (or ): + /sys/fs/cgroup を tmpfs でマウントし,そのコンテナの追加が行われた全ての階層構造に対するディレクトリを作製し,ホストからコンテナまでの階層構造を全てバインドマウントし,コンテナ自身の cgroup を除いてリードオンリーにします. + と比べると,コンテナ自身の cgroup に至るまでの全てのパスが tmpfs の下層のシンプルなディレクトリとなり,コンテナ自身の cgroup の外ではリードオンリーになりますが,/sys/fs/cgroup/$hierarchy はホストの全ての cgroup 階層構造を含みます. + これにより,コンテナにはかなりの情報が漏洩します. + + + + + + : + と同様にマウントされますが,全てリードオンリーでマウントされます. + + + + + + : + と同様にマウントされますが,全て読み書き可能でマウントされます. + この場合,コンテナは自身の cgroup から脱出する可能性があることに注意してください (コンテナが CAP_SYS_ADMIN を持ち,自身で cgroup ファイルシステムをマウント可能なら,いずれにせよそのようにするかもしれないことにも注意してください). + + + + + + 例: + + + lxc.mount.auto = proc sys cgroup + lxc.mount.auto = proc:rw sys:rw cgroup-full:rw + + + + + + + + + <!-- Root file system -->ルートファイルシステム + + + コンテナのルートファイルシステムは,ホストのルートファイルシステムと異なるようにすることも可能です. + + + + + + + + + + コンテナのルートファイルシステムになるディレクトリを指定します. + この値はイメージファイル,ディレクトリ,ブロックデバイスのどれかを取ることができます. + もし指定されない場合,コンテナはホストとルートファイルシステムを共有します. + + + + + + + + + + + + root ファイルシステムの変更の前に, を再帰的にどこにバインドするのかを指定します.これは + + pivot_root + 8 + + システムコールが確実に成功する事を保証します. + どんなディレクトリでも良く,デフォルトでも通常は動くはずです. + + + + + + + + + + + + 元の root ファイルシステムを, 以下のどこに移動させるかを からの相対パスで指定します. + デフォルトは mnt です. + これはもし必要であれば作成され,そしてコンテナのセットアップの間,全てアンマウントされた後で消去されます. + + + + + + + + Control group + + + CONTROL GROUP セクションは,(lxc とは) 別のサブシステムの設定を含みます. + lxc は,このサブシステム名の正しさはチェックしません. + 実行時のエラーを検出するのに不便ですが,別の将来のサブシステムをサポート出来るという有利な点もあります. + + + + + + + + + + 設定する control group の値を指定します. + サブシステム名は,control group のそのままの名前です. + 許される名前や値の書式は LXC が指示することはなく,コンテナが実行された時に実行されている Linux カーネルの機能に依存します. + 例えば + + + + + + + + <!-- Capabilities -->ケーパビリティ + + + コンテナが root 権限で実行されていても,コンテナ内ではケーパビリティ (capabilities) を削除する事は可能です. + + + + + + + + + + コンテナ内で削除するケーパビリティ (capability) を指定します. + 一行でスペース区切りで複数のケーパビリティを指定することも可能です. + 指定は,"CAP_" というプレフィックスなしで,小文字でケーパビリティを指定します. + 例えば,CAP_SYS_MODULE というケーパビリティは sys_module と指定する必要があります. + 詳しくは以下を参照してください. + + capabilities + 7 + + + + + + + + + + + + コンテナ内で維持するケーパビリティを指定します. + 指定した以外の全てのケーパビリティはドロップされます. + + + + + + + + <!-- Apparmor profile -->Apparmor プロファイル + + + lxc が apparmor サポートでコンパイルされ,インストールされている場合で,ホストで apparmor が有効な場合,コンテナが従って動くべき apparmor プロファイルは,コンテナの設定で指定することが可能です. + デフォルトは lxc-container-default です. + + + + + + + + + + コンテナが従うべき apparmor プロファイルを指定します. + コンテナが apparmor による制限を受けないように設定するには,以下のように設定します. + + lxc.aa_profile = unconfined + + + + + + + <!-- SELinux context -->SELinux コンテキスト + + + lxc が SELinux サポートでコンパイルされ,インストールされている場合で,ホストで SELinux が有効な場合,コンテナが従って動くべき SELinux コンテキストは,コンテナの設定で指定することが可能です. + デフォルトは unconfined_t であり,これは lxc がコンテキストを変えないという意味になります. + + + + + + + + + + コンテナが従うべき SELinux コンテキストを指定するか,unconfined_t を指定します.例えば以下のように設定します. + + lxc.se_context = unconfined_u:unconfined_r:lxc_t:s0-s0:c0.c1023 + + + + + + + <!-- Seccomp configuration -->Seccomp の設定 + + + コンテナは,起動時に seccomp プロファイルをロードすることで,利用可能なシステムコールを減らして起動することが可能です. + seccomp の設定ファイルは,最初の行がバージョン番号 (現在は 1 でなければならない) で,2 行目はポリシーのタイプ ('whitelist' でなければならない),で始まる必要があり,その後に 1 行ごとに利用可能なシステムコールの番号が書かれたリストが続きます. + + + + + + + + + + コンテナがスタートする前にロードする seccomp の設定を含むファイルを指定します. + + + + + + + + <!-- UID mappings -->UID のマッピング + + + コンテナは,ユーザとグループの id のマッピングを持った専用のユーザ名前空間で起動することが可能です. + たとえば,コンテナ内のユーザ id 0 を,ホストのユーザ id 200000 にマッピングすることが可能です. + コンテナの root ユーザはコンテナ内では特権を持ちますが,ホストでは特権を持ちません. + 通常は,システムコンテナは id の範囲を要求し,それをマッピングします. + 例えば,コンテナ内のユーザとグループの id 0 から 20,000 を 200,000 から 220,000 にマッピングします. + + + + + + + + + + 4 つの値を記述する必要があります. + 最初の文字は 'u' か 'g' のどちらかで,ユーザかグループの ID のどちらをマッピングするかを指定します. + 次はコンテナのユーザ名前空間内に現れる最初のユーザ ID です. + その次は,そのユーザ ID のホスト上での値です. + 最後は,ID のマッピングをいくつ連続して行うかの数を指定します. + + + + + + + + <!-- Container hooks -->コンテナのフック + + + コンテナのフックは,コンテナの存続期間の色々な場面で実行することのできるプログラムやスクリプトです. + + + + コンテナのフックが実行されるとき,情報がコマンドライン引数と環境変数の両方を通して渡されます.引数は: + + コンテナ名 + セクション (常に 'lxc') + フックのタイプ ('clone' や 'pre-mount' など) + 追加の引数.clone フックの場合,lxc-clone に渡される追加の引数は,フックへの引数として追加されます. + + 以下の環境変数がセットされます. + + LXC_NAME: コンテナ名 + LXC_ROOTFS_MOUNT: マウントされた root ファイルシステムへのパス + LXC_CONFIG_FILE: コンテナの設定ファイルのパス + LXC_SRC_NAME: clone フックの場合,元のコンテナの名前 + LXC_ROOTFS_PATH: コンテナの lxc.rootfs エントリ.これはマウントされた rootfs が存在する場所にはならないでしょう.それには LXC_ROOTFS_MOUNT を使用してください. + + + + + スクリプトからの標準出力は debug レベルでロギングされます. + 標準エラー出力はロギングされません. + しかし,フックの標準エラー出力を標準出力にリダイレクトすることにより保存することは可能です. + + + + + + + + + + コンテナの tty,コンソールの作成,マウントが実行される前に,ホストの名前空間内で実行するフック. + + + + + + + + + + + + + コンテナのファイルシステムの名前空間で実行されますが,rootfs が設定される前に実行するフック. + これにより rootfs の操作が可能になります. + 例えば,暗号化されたファイルシステムのマウントなどです. + このフック内でなされるマウントはホストには影響しません (mounts propagation を除いて). + なので,それらはコンテナがシャットダウンする時に自動的にクリーンアップされます. + + + + + + + + + + + + + マウントが完了した後ですが,pivot_root の前にコンテナの名前空間で実行されるフック. + + + + + + + + + + + + + == 1 が設定されている場合で,マウントが完了し,マウント時のフックも実行された後ですが,pivot_root の前にコンテナの名前空間で実行するフック. + このフックの目的は,systemd ベースのコンテナ向けの autodev オプションが設定されている時に,コンテナの /dev ディレクトリを設定するのを支援することです.コンテナの /dev ディレクトリは,このフックが実行される時有効な ${} 環境変数からの相対パスとなります. + + + + + + + + + + + + + コンテナの init が実行される直前にコンテナの名前空間で実行されるフック. + コンテナ内で利用可能なプログラムである必要があります. + + + + + + + + + + + + + コンテナがシャットダウンされた後にホストの名前空間で実行するフック. + + + + + + + + + + + + + コンテナが新しいコンテナにクローンされる際に実行されるフック.詳しくは + lxc-clone + 1 + を参照してください. + + + + + + + + <!-- Container hooks Environment Variables -->コンテナのフックで使える環境変数 + + + 起動時のフックに設定情報を提供し,フックの機能を助けるための環境変数がいくつか利用可能です. + 全ての変数が全てのコンテキストで利用可能なわけではありません. + 具体的には,全てのパスはホストシステム上のパスであり,そのため, フックの時点では使用できません. + + + + + + + + + + LXC コンテナの名前.共通のログ環境内でのログメッセージに使うときに便利です.[] + + + + + + + + + + + + + コンテナの設定ファイルのホスト上でのパス. + これは,他の方法では得られない追加の設定情報を見つけるために,コンテナに,元の,トップレベルの設定ファイルの位置を与えるものです. [] + + + + + + + + + + + + + 設定されている場合のコンテナのコンソール出力のパス. + [] [] + + + + + + + + + + + + + 設定されている場合のコンテナのコンソールログ出力のパス. + [] + + + + + + + + + + + + + 初期にコンテナがマウントされる場所. + これは,コンテナインスタンスが起動するためのコンテナの rootfs へのホスト上のパスであり,インスタンスのための移行が行われる場所です. + [] + + + + + + + + + + + + + rootfs.mount へマウントされるコンテナのルートへのホスト上のパスです. + + + + + + + + + <!-- Logging -->ロギング + + + ロギングはコンテナごとに設定することが可能です. + デフォルトでは,lxc パッケージのコンパイル条件に依存し,コンテナのスタートアップは ERROR レベルでのみロギングされ,コンテナのパス以下か,@LOGPATH@ 以下のどちらかにコンテナ名 (の後に '.log' が付与される) をもとにした名前でロギングされます. + + + + デフォルトのログレベルとログファイルは両方とも,コンテナの設定ファイル内で指定され,デフォルトの値を上書きします. + 同様に,設定ファイルのエントリは lxc-start のコマンドラインオプションで上書きすることも可能です. + + + + + + + + + + ログを取得するレベル. + ログレベルは 0..8 の範囲の整数です. + 数字が小さいほど冗長なデバッグを意味します. + 具体的には,0 = trace, 1 = debug, 2 = info, 3 = notice, 4 = warn, 5 = error, 6 = critical, 7 = alert, and 8 = fatal です. + 指定されない場合,レベルのデフォルトは 5 (error) で,それ以上のエラーがロギングされます. + + + + (フックスクリプトやネットワークインターフェースの起動,停止時のスクリプトのような) スクリプトが呼ばれた時,スクリプトの標準出力は level 1 の debug でロギングされます. + + + + + + + + + + + ログ情報を書き込むファイル. + + + + + + + + <!-- Autostart -->自動起動 + + + 自動起動オプションでは,自動起動させるコンテナと順番の設定が可能です. + このオプションは LXC ツールが直接使用するか,ディストリビューションが提供する外部ツールが使用するかもしれません. + + + + + + + + + + + コンテナを自動起動させるかどうかを設定します. + 有効な値は 0(オフ) か 1(オン) です. + + + + + + + + + + + コンテナを起動させた後,次のコンテナを起動させるまでにどれくらい (秒) 待つかを設定します. + + + + + + + + + + + 多数の自動起動させるコンテナがある場合のコンテナの起動順を決めるのに使う整数を指定します. + + + + + + + + + + + コンテナを追加したいコンテナグループ名を指定します. + (複数回使用される可能性のある) 複数の値を設定可能です. + 設定されたグループは,関連する一連のコンテナを起動させるために使われます. + + + + + + + + + + <!-- Examples -->例 + + + 以下に紹介するいくつかの例に加えて,他の設定例が @DOCDIR@/examples にあります. + + + <!-- Network -->ネットワーク + + + この設定は,片方をブリッジである br0 と接続される veth ペアデバイスを使うコンテナを設定します (ブリッジは管理者によりあらかじめシステム上に設定済みである必要があります). + 仮想ネットワークデバイスは,コンテナ内では eth0 とリネームされます. + + + lxc.utsname = myhostname + lxc.network.type = veth + lxc.network.flags = up + lxc.network.link = br0 + lxc.network.name = eth0 + lxc.network.hwaddr = 4a:49:43:49:79:bf + lxc.network.ipv4 = 1.2.3.5/24 1.2.3.255 + lxc.network.ipv6 = 2003:db8:1:0:214:1234:fe0b:3597 + + + + + <!-- UID/GID mapping -->UID/GID のマッピング + + この設定は,コンテナ内のユーザとグループ両方の id 0-9999 の範囲を,ホスト上の 100000-109999 へマッピングします. + + + lxc.id_map = u 0 100000 10000 + lxc.id_map = g 0 100000 10000 + + + + + Control group + + + この設定は,アプリケーションのための control group をいくつか設定します. + cpuset.cpus は定義された cpu のみ使用できるように制限します. + cpus.share は,control group の (cpu) 優先度を指定します. + devices.allow は,特定のデバイスを使用可能にします. + + + 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 + + + + + <!-- Complex configuration -->複雑な設定 + + + この例は,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 + + + + + + + See Also + + + chroot + 1 + , + + + pivot_root + 8 + , + + + fstab + 5 + + + + capabilities + 7 + + + + + + &seealso; + + + <!-- Author -->作者 + Daniel Lezcano daniel.lezcano@free.fr + + + + + diff --git a/doc/ja/lxc.system.conf.sgml.in b/doc/ja/lxc.system.conf.sgml.in new file mode 100644 index 000000000..10af57499 --- /dev/null +++ b/doc/ja/lxc.system.conf.sgml.in @@ -0,0 +1,240 @@ + + + +]> + + + + @LXC_GENERATE_DATE@ + + + lxc.system.conf + 5 + + + + lxc.system.conf + + + + LXC のシステム設定ファイル + + + + + <!-- Description -->説明 + + + + システム設定ファイルは @LXC_GLOBAL_CONF@ を使用します. + 非特権コンテナの場合には ~/.config/lxc/lxc.conf を使用します. + + + + + この設定ファイルは LXC のデフォルトパスやストレージバックエンドの設定のような値を設定する時に使用します. + + + + <!-- Configuration paths -->パスの設定 + + + + + + + + + + 全てのコンテナが保存される場所. + + + + + + + + + + + コンテナのデフォルト設定ファイルのパス. + + + + + + + + Control Groups + + + + + + + + + + 使用する cgroup コントローラのコンマ区切りのリスト. + + + + + + + + + + + コンテナ用の cgroup を生成する際に使うフォーマット文字列 (例. lxc/%n). + + + + + + + + LVM + + + + + + + + + + デフォルトの LVM の volume group 名. + + + + + + + + + + + デフォルトの LVM の thin pool 名. + + + + + + + + ZFS + + + + + + + + + + デフォルトの ZFS root 名. + + + + + + + + + + + lxc + 1 + , + + lxc.container.conf + 5 + , + + lxc.system.conf + 5 + , + + lxc-usernet + 5 + + + + + &seealso; + + + Author + Stéphane Graber stgraber@ubuntu.com + + + + diff --git a/doc/lxc.system.conf.sgml.in b/doc/lxc.system.conf.sgml.in index a2b70ec6c..039c3db54 100644 --- a/doc/lxc.system.conf.sgml.in +++ b/doc/lxc.system.conf.sgml.in @@ -93,7 +93,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - +