Provided by: lxc_1.0.3-0ubuntu3_amd64 bug

NAME

       lxc.container.conf - LXC コンテナ設定ファイル

説明

       linux コンテナ (lxc) は,常に使用する前に作成されます. コンテナは,プロセスがコンテナを使
       う時に仮想化/隔離するシステムリソースのセットを定義することによって作成します. デフォルト
       では,pid,  sysv  ipc,  マウントポイントが仮想化され,隔離されます.  他のシステムリソース
       は,設定ファイルで明確に定義されない限りは,コンテナをまたいで共有されます.  例えば,もし
       ネットワークが設定されていなければ,コンテナを作成する側とコンテナでネットワークを共有しま
       す.    しかし,ネットワークが指定されれば,新しいネットワークスタックがコンテナ用に作成さ
       れ,コンテナは作成元の環境のネットワークを使いません.

       設定ファイルは,コンテナに割り当てられる様々なシステムリソースを定義します.      現時点で
       は,utsname,ネットワーク,マウントポイント,root           ファイルシステム,ユーザ名前空
       間,control groups がサポートされます.

       設定ファイルのオプション一つを,key  = value の形で一行で表します. '#' は,その行はコメン
       トであることを示します.

   設定
       複数の関係するコンテナの管理を容易にするために,コンテナの設定ファイルに別のファイルをロー
       ドすることが可能です. 例えば,ネットワークの設定を,複数のコンテナから include させるよう
       に 1 つのファイルに定義することが可能です. その場合,コンテナが他のホストに移動すると,そ
       のファイルだけを更新する必要があるかもしれません.

       lxc.include
              include  させたいファイルを指定します.  include するファイルは,lxc 設定ファイルの
              フォーマットとして有効でなければいけません.

   アーキテクチャ
       コンテナに対してアーキテクチャを設定することが可能です. 例えば,64 ビットのホスト上で  32
       ビットのバイナリを動かすために  32 ビットアーキテクチャを設定することが可能です. この設定
       を行うことにより,パッケージのダウンロードを行うなどの作業のうち,アーキテクチャ名に依存す
       るような作業を行うコンテナスクリプトの修正を行います.

       lxc.arch
              コンテナに設定するアーキテクチャを指定します.

              有効なオプションは以下です. x86, i686, x86_64, amd64

   ホスト名
       utsname  セクションは,コンテナに設定されるホスト名を定義します. コンテナは,システムのホ
       スト名を変えることなく,自身のホスト名を持つ事が可能です.  このことにより,ホスト名はコン
       テナ専用となります.

       lxc.utsname
              コンテナのホスト名を指定します.

   クリーンなシャットダウン時のシグナル
       lxc-stop  がコンテナをクリーンにシャットダウンするためにコンテナの init プロセスに送るシグ
       ナル名か番号を指定することができます. init システムによって,クリーンなシャットダウンを行
       うために使うシグナルは異なります. このオプションではシグナルとして kill(1) で使う形式を指
       定することができます. 例えば SIGKILL, SIGRTMIN+14, SIGRTMAX-10 のような形式,もしくは数字
       を指定します.デフォルトのシグナルは SIGPWR です.

       lxc.haltsignal
              コンテナをシャットダウンするのに使うシグナルを指定します

   強制停止時のシグナル
       lxc-stop  がコンテナを強制的にシャットダウンするために送るシグナル名か番号を指定することが
       できます. このオプションではシグナルとして  kill(1)  で使う形式を指定することができます.
       例えば  SIGKILL, SIGRTMIN+14, SIGRTMAX-10 のような形式,もしくは数字を指定します.デフォル
       トのシグナルは SIGKILL です.

       lxc.stopsignal
              コンテナを停止するのに使用するシグナルを指定します.

   ネットワーク
       ネットワークセクションは,コンテナ内でどのようにネットワークを仮想化するかを定義します.
       ネットワークの仮想化はレイヤー 2 で作動します. ネットワークの仮想化を使用するためには,コ
       ンテナのネットワークインターフェースを定義しなければなりません.    いくつかの仮想インター
       フェースをアサインすることができます.  そして,仮に物理ネットワークインターフェースが一つ
       しかなくても,コンテナ内でいくつもの仮想インターフェースを使うことができます.

       lxc.network.type
              コンテナがどの種類のネットワーク仮想化を使うかを指定します. 一つのネットワークの設
              定ごとに lxc.network.type フィールドを指定します. このように,一つのコンテナに複数
              のネットワークインターフェースを割り当てることができるだけでなく,同じコンテナに対
              して複数のネットワーク仮想化の種類を指定することが出来ます. 仮想化の種類は以下の値
              を取る事が出来ます:

              none: ホストのネットワーク名前空間を共有します. これにより,ホストのネットワークデ
              バイスをコンテナ内で使うことが可能になります.  もしコンテナもホストも  init として
              upstart を使っている場合,(例えば) コンテナ内で 'halt' を実行すると,ホストがシャッ
              トダウンしてしまうことにもなります.

              empty: ループバックインターフェースだけを作成します.

              veth:  一方がコンテナに,もう一方が lxc.network.link で指定されるブリッジにアタッチ
              される,ピアネットワークデバイスを作成します.   もし,ブリッジが指定されていない場
              合,veth  ペアデバイスは作成されますが,ブリッジにはアタッチされません. ブリッジは
              システムで事前に設定する必要があります. さもなければ,lxc はコンテナ外のいかなる設
              定も扱うことはできないでしょう. デフォルトでは,lxc はコンテナの外部に属するネット
              ワークデバイスに対する名前を決定し,lxc はこの名前を使います. しかし,もしこの名前
              を自分で指定したい場合,lxc.network.veth.pair   オプションを使って名前を設定し,lxc
              に対して指定をすることができます.

              vlan: vlan インターフェースは lxc.network.link で指定されたインターフェースとリンク
              し,コンテナに割り当てられます. vlan の指定は lxc.network.vlan.id オプションで指定
              します.

              macvlan: macvlan インターフェースは lxc.network.link により指定されるインターフェー
              スとリンクし,コンテナに割り当てられます.  lxc.network.macvlan.mode でモードを指定
              すると,その macvlan の指定を,同じ上位デバイスで異なる macvlan  の間の通信をする時
              に使います.  受け入れられたモードが private であれば,デバイスは同じ上位デバイスの
              他のデバイスとの通信を行いません  (デフォルト).   新しい仮想イーサネットポート集約
              モード  (Virtual  Ethernet  Port  Aggregator (VEPA)) である vepa は,隣接したポート
              が,ソースとデスティネーションの両方が macvlan ポートに対してローカルであるフレーム
              を全て返すと仮定します. すなわち,ブリッジが reflective relay として設定されている
              ということです. 上位デバイスから入ってくるブロードキャストフレームは,VEPA  モード
              である全ての  macvlan インターフェースに送りつけられます. ローカルのフレームはロー
              カルには配送されません. bridge の指定は,同じポートの異なる macvlan インターフェー
              スの間のシンプルなブリッジとして動作します.   あるインターフェースから他のインター
              フェースへのフレームは,直接配送され,外部には送出されません.   ブロードキャストフ
              レームは,全ての他のブリッジと外部のインターフェースに対して送られます.       しか
              し,reflective relay からフレームが返ってきたときは,再度それを配送することはしませ
              ん.  全ての  MAC  アドレスを知っているので,ブリッジモジュールのように,macvlan ブ
              リッジモードは学習や STP の必要はありません.

              phys: lxc.network.link で指定された,すでに存在しているインターフェースがコンテナに
              割り当てられます.

       lxc.network.flags
              ネットワークに対して行うアクションを指定します.

              up: インターフェースを起動させます.

       lxc.network.link
              実際のネットワークトラフィックに使うインターフェースを指定します.

       lxc.network.mtu
              インターフェースに対する MTU を指定します.

       lxc.network.name
              インターフェース名は動的に割り当てられます. しかし,もしコンテナが使用する設定ファ
              イルが一般的な名前を使用するために,他の特定の名前が必要であれば  (例えば  eth0  な
              ど),コンテナ内のインターフェースは,このオプションで指定した名前にリネームされま
              す.

       lxc.network.hwaddr
              仮想インターフェースの MAC アドレスは,デフォルトでは動的に割り当てられます.  しか
              し,MAC アドレスの衝突や,リンクローカルIPv6 アドレスを常に同じにした場合などは,こ
              のオプションが必要です. アドレス中の "x"  という文字は,ランダムな値に置き換えられ
              ます. これによりテンプレートに hwaddr を設定することが可能になります.

       lxc.network.ipv4
              仮想インターフェースに割り当てる   ipv4  アドレスを指定します.  複数行により複数の
              ipv4 アドレスを指定します. このアドレスは  x.y.z.t/m  というフォーマットで指定しま
              す. 例えば,192.168.1.123/24.ブロードキャストアドレスも同じ行の ipv4 アドレスのす
              ぐ後で指定しなくてはなりません.

       lxc.network.ipv4.gateway
              コンテナでゲートウェイとして使う IPv4 アドレスを指定します. アドレスは x.y.z.t  と
              いうフォーマットです.  例えば,192.168.1.123. auto という特別な値を記述する事も可
              能です. これは (lxc.network.link で指定した)  ブリッジインターフェースの最初のアド
              レスを使用し,それをゲートウェイに使うという意味になります.  auto はネットワークタ
              イプとして vethmacvlan を指定している時だけ有効となります.

       lxc.network.ipv6
              仮想インターフェースに割り当てる  ipv6  アドレスを指定します.   複数行により複数の
              ipv6  アドレスを指定します. このアドレスは x::y/m というフォーマットで指定します.
              例えば,2003:db8:1:0:214:1234:fe0b:3596/64.

       lxc.network.ipv6.gateway
              コンテナでゲートウェイとして使う IPv6 アドレスを指定します. アドレスは x::y という
              フォーマットです.例えば,2003:db8:1:0::1. auto という特別な値を記述する事も可能で
              す. これは (lxc.network.link で指定した)  ブリッジインターフェースの最初のアドレス
              を使用し,それをゲートウェイに使うという意味になります.  auto はネットワークタイプ
              として vethmacvlan を指定している時だけ有効となります.

       lxc.network.script.up
              ホスト側から使われる,ネットワークの作成と設定が済んだ後に実行するスクリプトを指定
              します. 以下の引数がスクリプトに渡されます: コンテナ名,設定セクション名(net). そ
              の後の引数はスクリプトのフックで使われる設定セクションに依存します.   以下がネット
              ワークシステムによって使われます:    実行コンテキスト    (up),ネットワークのタイプ
              (empty/veth/macvlan/phys)  ネットワークのタイプによっては,更に別の引数が渡されるか
              もしれません: veth/macvlan/phys の場合 (ホスト側の) デバイス名

              スクリプトからの標準出力は  debug レベルでロギングされます. 標準エラー出力はロギン
              グされません. しかし,フックの標準エラー出力を標準出力にリダイレクトすることにより
              保存することは可能です.

       lxc.network.script.down
              ホスト側から使われる,ネットワークを破壊する前に実行するスクリプトを指定します. 以
              下の引数がスクリプトに渡されます: コンテナ名,設定セクション名(net).  その後の引数
              はスクリプトのフックで使われる設定セクションに依存します. 以下がネットワークシステ
              ムによって使われます:          実行コンテキスト          (up),ネットワークのタイプ
              (empty/veth/macvlan/phys).  ネットワークのタイプによっては,更に別の引数が渡される
              かもしれません: veth/macvlan/phys.そして最後に  (ホスト側の)  デバイス名が渡されま
              す.

              スクリプトからの標準出力は  debug レベルでロギングされます. 標準エラー出力はロギン
              グされません. しかし,フックの標準エラー出力を標準出力にリダイレクトすることにより
              保存することは可能です.

   新しい擬似端末のインスタンス (DEVPTS)
       さらに厳しい隔離のために,コンテナは自身のプライベートな  pseudo tty (擬似端末) を持つこと
       が可能です.

       lxc.pts
              もし設定された場合,コンテナは新しい psuedo tty  インスタンスを持ち,それを自身のプ
              ライベートとします.  この値は pts インスタンスに許可される pseudo tty の最大数を指
              定します (この制限はまだ実装されていません).

   コンテナのシステムコンソール
       コンテナでルートファイルシステムを持つように設定されており,inittab ファイルでコンソールの
       使用が設定されている場合,このコンソールの出力がどこになされるのかを指定したいと思うでしょ
       う.

       lxc.console
              コンソールの出力が書かれるファイルのパスを指定します.'none' というキーワードは,単
              純にコンソールを無効にします. この設定は,アプリケーションが書き込む事ができるコン
              ソールデバイスファイルが rootfs  に存在する場合,メッセージがホスト側に出力されるの
              で危険です.

   TTY を通したコンソール
       このオプションはコンテナが root ファイルシステムを持つように設定されており,inittab ファイ
       ルで tty 上に getty の起動が設定されている場合に役に立ちます.  このオプションはコンテナで
       利用できる  tty の数を指定します. inittab ファイルに設定する getty の数は,このオプション
       の指定する tty の数より大きくしてはいけません. さもなければ,超過した分の getty  セッショ
       ンはコンソールか  /var/log/messages にうっとうしいメッセージを生死を表示しながら,永久に生
       死を繰り返すでしょう.

       lxc.tty
              コンテナに作成出来る tty の数を指定します.

   コンソールデバイスの位置
       LXC のコンソールはホストによって作られ,コンテナ内で要求されたデバイスに bind マウントされ
       た Unix98 PTY 経由で提供されます. デフォルトでは /dev/console/dev/ttyN に bind マウン
       トされます. これはゲスト内でのパッケージのアップグレードを妨げる可能性があります. なので
       /dev 以下のディレクトリを指定することができます. LXC はこのディレクトリ以下にファイルを作
       成し,これらのファイルを bind マウントします.  そして,これらの  (作成された)  ファイルは
       /dev/console/dev/ttyN にシンボリックリンクされます. シンボリックリンクを消去したり置
       き換えたりすることは可能ですから,パッケージのアップグレードは成功します.

       lxc.devttydir
              コンテナのコンソールデバイスを作成するための /dev 以下のディレクトリを指定します.

   /DEV ディレクトリ
       デフォルトでは,lxc はコンテナの /dev 以下に fd, stdin, stdout, stderr  のシンボリックリン
       クを作成しますが,自動的にはデバイスノードのエントリは作成しません.    これは,コンテナの
       rootfs で必要な設定を行えるようにするものです. lxc.autodev が 1  に設定されている場合,コ
       ンテナの rootfs をマウントした後,LXC は新しい tmpfs を /dev 以下にマウントします (100k 制
       限の). そして初期デバイスの最小限のセットを作成します. これは,"systemd" ベースの "init"
       環境のコンテナを起動する時に通常必要ですが,他の環境の場合はオプショナルなものです.  コン
       テナの /dev ディレクトリ内の追加デバイスは lxc.hook.autodev フックを使用して作成されます.

       lxc.autodev
              コンテナの起動時に LXC が /dev をマウントして,最小限の /dev を作成しているようにす
              るには,これを 1 に設定してください.

   KMSG のシンボリックリンクの有効化
       /dev/kmsg の /dev/console へのシンボリックリンクとしての作成を有効にします.デフォルトは 1
       です.

       lxc.kmsg
              /dev/kmsg のシンボリックリンクを無効にするには 0 を設定してください.

   マウントポイント
       マウントポイントセクションは,マウントするための区別された場所を指定します.  これらのマウ
       ントポイントは,コンテナだけに見え,コンテナ外で実行されるプロセスから見えることはありませ
       ん. 例えば,/etc/var/home をマウントするときに役に立つでしょう.

       lxc.mount
              マウントに関する情報が書かれた   fstab   フォーマットのファイルの場所を指定します.
              rootfs がイメージファイルやブロックデバイスで,fstab ファイルがこの rootfs 内のどこ
              かをマウントするために使われる場合,rootfs のマウントポイントのパスはデフォルトパス
              である /usr/lib/x86_64-linux-gnu/lxc か,もしくは lxc.rootfs.mount が指定されている
              場合は,その値を前に付ける必要があります.   ファイルシステムがイメージファイルやブ
              ロックデバイスからマウントされている場合,3    つ目のフィールド   (fs_vfstype)   は
              mount(8) のように auto を指定することはできず,明確に指定しなければいけません.

       lxc.mount.entry
              fstab フォーマットの一行と同じフォーマットのマウントポイントの指定をします.

       lxc.mount.auto
              標準のカーネルファイルシステムで自動的にマウントするものを指定します. これは劇的に
              設定を容易にする可能性があります.

              · proc:mixed (or proc): /proc を読み書き可能でマウントします. ただし,/proc/sys/proc/sysrq-trigger  は,セキュリティとコンテナの隔離の目的でリードオンリーで再マ
                ウントされます.

              · proc:rw: /proc を読み書き可能でマウントします.

              · sys:ro  (or sys): /sys を,セキュリティとコンテナの隔離の目的でリードオンリーでマ
                ウントします.

              · sys:rw: /sys を読み書き可能でマウントします.

              · cgroup:mixed (or cgroup): /sys/fs/cgroup を tmpfs  でマウントし,そのコンテナの追
                加が行われた全ての階層構造に対するディレクトリを作製し,その  cgroup の名前でその
                中にサブディレクトリを作製し,そのコンテナ自身の cgroup  をそのディレクトリにバイ
                ンドマウントします.   コンテナは自身の  cgroup  ディレクトリに書き込みが可能です
                が,親ディレクトリはリードオンリーで再マウントされているため書き込めません.

              · cgroup:ro: cgroup:mixed  と同様にマウントされますが,全てリードオンリーでマウント
                されます.

              · cgroup:rw:  cgroup:mixed と同様にマウントされますが,全て読み書き可能でマウントさ
                れます. コンテナ自身の cgroup に至るまでのパスも書き込み可能になることに注意が必
                要ですが,cgroup  ファイルシステムにはならず, /sys/fs/cgroup の tmpfs の一部分に
                なるでしょう.

              · cgroup-full:mixed (or cgroup-full): /sys/fs/cgroup を tmpfs  でマウントし,そのコ
                ンテナの追加が行われた全ての階層構造に対するディレクトリを作製し,ホストからコン
                テナまでの階層構造を全てバインドマウントし,コンテナ自身の cgroup  を除いてリード
                オンリーにします.  cgroup と比べると,コンテナ自身の cgroup に至るまでの全てのパ
                スが tmpfs の下層のシンプルなディレクトリとなり,コンテナ自身の  cgroup  の外では
                リードオンリーになりますが,/sys/fs/cgroup/$hierarchy  はホストの全ての cgroup 階
                層構造を含みます. これにより,コンテナにはかなりの情報が漏洩します.

              · cgroup-full:ro: cgroup-full:mixed  と同様にマウントされますが,全てリードオンリー
                でマウントされます.

              · cgroup-full:rw: cgroup-full:mixedと同様にマウントされますが,全て読み書き可能でマ
                ウントされます. この場合,コンテナは自身の cgroup から脱出する可能性があることに
                注意してください (コンテナが CAP_SYS_ADMIN を持ち,自身で cgroup ファイルシステム
                をマウント可能なら,いずれにせよそのようにするかもしれないことにも注意してくださ
                い).

       例:

                  lxc.mount.auto = proc sys cgroup
                  lxc.mount.auto = proc:rw sys:rw cgroup-full:rw

   ルートファイルシステム
       コンテナのルートファイルシステムは,ホストのルートファイルシステムと異なるようにすることも
       可能です.

       lxc.rootfs
              コンテナのルートファイルシステムになるディレクトリを指定します.   この値はイメージ
              ファイル,ディレクトリ,ブロックデバイスのどれかを取ることができます. もし指定され
              ない場合,コンテナはホストとルートファイルシステムを共有します.

       lxc.rootfs.mount
              root ファイルシステムの変更の前に,lxc.rootfs  を再帰的にどこにバインドするのかを指
              定します.これは  pivot_root(8) システムコールが確実に成功する事を保証します. どん
              なディレクトリでも良く,デフォルトでも通常は動くはずです.

       lxc.rootfs.options
              rootfs をマウントするときに追加したいマウントオプション.

       lxc.pivotdir
              元の root ファイルシステムを,lxc.rootfs 以下のどこに移動させるかを lxc.rootfs から
              の相対パスで指定します. デフォルトは mnt です. これはもし必要であれば作成され,そ
              してコンテナのセットアップの間,全てアンマウントされた後で消去されます.

   CONTROL GROUP
       CONTROL GROUP セクションは,(lxc とは) 別のサブシステムの設定を含みます. lxc は,このサブ
       システム名の正しさはチェックしません.  実行時のエラーを検出するのに不便ですが,別の将来の
       サブシステムをサポート出来るという有利な点もあります.

       lxc.cgroup.[subsystem name]
              設定する control group の値を指定します. サブシステム名は,control group  のそのま
              まの名前です.  許される名前や値の書式は LXC が指示することはなく,コンテナが実行さ
              れた時に実行されている       Linux       カーネルの機能に依存します.        例えば
              lxc.cgroup.cpuset.cpus

   ケーパビリティ
       コンテナが root 権限で実行されていても,コンテナ内ではケーパビリティ (capabilities) を削除
       する事は可能です.

       lxc.cap.drop
              コンテナ内で削除するケーパビリティ (capability) を指定します. 一行でスペース区切り
              で複数のケーパビリティを指定することも可能です.  指定は,"CAP_" というプレフィック
              スなしで,小文字でケーパビリティを指定します. 例えば,CAP_SYS_MODULE  というケーパ
              ビリティは  sys_module  と指定する必要があります. 詳しくは以下を参照してください.
              capabilities(7)

       lxc.cap.keep
              コンテナ内で維持するケーパビリティを指定します. 指定した以外の全てのケーパビリティ
              はドロップされます.

   APPARMOR プロファイル
       lxc  が apparmor サポートでコンパイルされ,インストールされている場合で,ホストで apparmor
       が有効な場合,コンテナが従って動くべき apparmor プロファイルは,コンテナの設定で指定するこ
       とが可能です. デフォルトは lxc-container-default です.

       lxc.aa_profile
              コンテナが従うべき apparmor プロファイルを指定します. コンテナが apparmor による制
              限を受けないように設定するには,以下のように設定します.

              lxc.aa_profile = unconfined

   SELINUX コンテキスト
       lxc が SELinux サポートでコンパイルされ,インストールされている場合で,ホストで SELinux が
       有効な場合,コンテナが従って動くべき  SELinux コンテキストは,コンテナの設定で指定すること
       が可能です. デフォルトは unconfined_t であり,これは lxc がコンテキストを変えないという意
       味になります.

       lxc.se_context
              コンテナが従うべき  SELinux コンテキストを指定するか,unconfined_t を指定します.例
              えば以下のように設定します.

              lxc.se_context = unconfined_u:unconfined_r:lxc_t:s0-s0:c0.c1023

   SECCOMP の設定
       コンテナは,起動時に seccomp  プロファイルをロードすることで,利用可能なシステムコールを減
       らして起動することが可能です.  seccomp の設定ファイルは,1 行目がバージョン番号,2 行目が
       ポリシーのタイプで始まる必要があり,その後に設定を書きます.

       現時点では,バージョン番号は 1 と 2 をサポートしています.バージョン 1  では,ポリシーはシ
       ンプルなホワイトリストですので,2 行目は "whitelist" でなければなりません. そして残りの行
       には 1 行に 1 つずつ,システムコール番号を書きます.各行のシステムコール番号がホワイトリス
       ト化され,リストにない番号は,そのコンテナではブラックリストに入ります.

       バージョン  2 では,ポリシーはブラックリストもしくはホワイトリストで表され,ルールごとのア
       クションと,ポリシーごとのデフォルトのアクションを設定できます.そして,アーキテクチャごと
       の設定と,テキストで書かれたシステムコール名での設定が可能です.

       以下にブラックリストのポリシーの例を示します.これは  mknod 以外の全てのシステムコールが許
       可され,mknod が呼ばれると,何もせずに単に 0(成功) を返します.

       2
       blacklist
       mknod errno 0
       .fi

       lxc.seccomp
              コンテナがスタートする前にロードする seccomp の設定を含むファイルを指定します.

   UID のマッピング
       コンテナは,ユーザとグループの id のマッピングを持った専用のユーザ名前空間で起動することが
       可能です. たとえば,コンテナ内のユーザ id 0 を,ホストのユーザ id 200000 にマッピングする
       ことが可能です. コンテナの root  ユーザはコンテナ内では特権を持ちますが,ホストでは特権を
       持ちません.  通常は,システムコンテナは  id の範囲を要求し,それをマッピングします. 例え
       ば,コンテナ内のユーザとグループの id 0 から 20,000 を 200,000 から 220,000 にマッピングし
       ます.

       lxc.id_map
              4 つの値を記述する必要があります. 最初の文字は 'u' か 'g' のどちらかで,ユーザかグ
              ループの ID のどちらをマッピングするかを指定します. 次はコンテナのユーザ名前空間内
              に現れる最初のユーザ  ID です. その次は,そのユーザ ID のホスト上での値です. 最後
              は,ID のマッピングをいくつ連続して行うかの数を指定します.

   コンテナのフック
       コンテナのフックは,コンテナの存続期間の色々な場面で実行することのできるプログラムやスクリ
       プトです.

       コンテナのフックが実行されるとき,情報がコマンドライン引数と環境変数の両方を通して渡されま
       す.引数は:

       · コンテナ名

       · セクション (常に '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 レベルでロギングされます. 標準エラー出力はロギングされま
       せん.  しかし,フックの標準エラー出力を標準出力にリダイレクトすることにより保存することは
       可能です.

       lxc.hook.pre-start
              コンテナの  tty,コンソールの作成,マウントが実行される前に,ホストの名前空間内で実
              行するフック.

       lxc.hook.pre-mount
              コンテナのファイルシステムの名前空間で実行されますが,rootfs が設定される前に実行す
              るフック. これにより rootfs の操作が可能になります.  例えば,暗号化されたファイル
              システムのマウントなどです. このフック内でなされるマウントはホストには影響しません
              (mounts propagation を除いて).  なので,それらはコンテナがシャットダウンする時に自
              動的にクリーンアップされます.

       lxc.hook.mount
              マウントが完了した後ですが,pivot_root の前にコンテナの名前空間で実行されるフック.

       lxc.hook.autodev
              lxc.autodev == 1 が設定されている場合で,マウントが完了し,マウント時のフックも実行
              された後ですが,pivot_root の前にコンテナの名前空間で実行するフック.  このフックの
              目的は,systemd ベースのコンテナ向けの autodev オプションが設定されている時に,コン
              テナの /dev ディレクトリを設定するのを支援することです.コンテナの /dev  ディレクト
              リは,このフックが実行される時有効な ${LXC_ROOTFS_MOUNT} 環境変数からの相対パスとな
              ります.

       lxc.hook.start
              コンテナの init が実行される直前にコンテナの名前空間で実行されるフック. コンテナ内
              で利用可能なプログラムである必要があります.

       lxc.hook.post-stop
              コンテナがシャットダウンされた後にホストの名前空間で実行するフック.

       lxc.hook.clone
              コンテナが新しいコンテナにクローンされる際に実行されるフック.詳しくは lxc-clone(1)
              を参照してください.

   コンテナのフックで使える環境変数
       起動時のフックに設定情報を提供し,フックの機能を助けるための環境変数がいくつか利用可能で
       す. 全ての変数が全てのコンテキストで利用可能なわけではありません. 具体的には,全てのパス
       はホストシステム上のパスであり,そのため,lxc.hook.start フックの時点では使用できません.

       LXC_NAME
              LXC コンテナの名前.共通のログ環境内でのログメッセージに使うときに便利です.[-n]

       LXC_CONFIG_FILE
              コンテナの設定ファイルのホスト上でのパス. これは,他の方法では得られない追加の設定
              情報を見つけるために,コンテナに,元の,トップレベルの設定ファイルの位置を与えるも
              のです. [-f]

       LXC_CONSOLE
              設定されている場合のコンテナのコンソール出力のパス. [-c] [lxc.console]

       LXC_CONSOLE_LOGPATH
              設定されている場合のコンテナのコンソールログ出力のパス. [-L]

       LXC_ROOTFS_MOUNT
              初期にコンテナがマウントされる場所. これは,コンテナインスタンスが起動するためのコ
              ンテナの  rootfs へのホスト上のパスであり,インスタンスのための移行が行われる場所で
              す. [lxc.rootfs.mount]

       LXC_ROOTFS_PATH
              rootfs.mount へマウントされるコンテナのルートへのホスト上のパスです.

   ロギング
       ロギングはコンテナごとに設定することが可能です. デフォルトでは,lxc  パッケージのコンパイ
       ル条件に依存し,コンテナのスタートアップは  ERROR レベルでのみロギングされ,コンテナのパス
       以下か,/var/log/lxc 以下のどちらかにコンテナ名 (の後に '.log' が付与される)  をもとにした
       名前でロギングされます.

       デフォルトのログレベルとログファイルは両方とも,コンテナの設定ファイル内で指定され,デフォ
       ルトの値を上書きします. 同様に,設定ファイルのエントリは  lxc-start  のコマンドラインオプ
       ションで上書きすることも可能です.

       lxc.loglevel
              ログを取得するレベル.  ログレベルは 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 でロギングされま
              す.

       lxc.logfile
              ログ情報を書き込むファイル.

   自動起動
       自動起動オプションでは,自動起動させるコンテナと順番の設定が可能です.    このオプションは
       LXC ツールが直接使用するか,ディストリビューションが提供する外部ツールが使用するかもしれま
       せん.

       lxc.start.auto
              コンテナを自動起動させるかどうかを設定します. 有効な値は 0(オフ) か 1(オン) です.

       lxc.start.delay
              コンテナを起動させた後,次のコンテナを起動させるまでにどれくらい (秒)  待つかを設定
              します.

       lxc.start.order
              多数の自動起動させるコンテナがある場合のコンテナの起動順を決めるのに使う整数を指定
              します.

       lxc.group
              コンテナを追加したいコンテナグループ名を指定します. (複数回使用される可能性のある)
              複数の値を設定可能です. 設定されたグループは,関連する一連のコンテナを起動させるた
              めに使われます.

       以下に紹介するいくつかの例に加えて,他の設定例が /usr/share/doc/lxc/examples にあります.

   ネットワーク
       この設定は,片方をブリッジである 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 のマッピング
       この設定は,コンテナ内のユーザとグループ両方の     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

   複雑な設定
       この例は,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)

SEE ALSO

       lxc(7),  lxc-create(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)

作者

       Daniel Lezcano <daniel.lezcano@free.fr>

                                   Mon Apr 14 15:49:22 UTC 2014             lxc.container.conf(5)