lxc-create(1) コンテナの作成

SYNOPSIS

lxc-create {-n name} [-f config_file] {-t template} [-B backingstore] [-- template-options]

説明

lxc-create は、設定情報とユーザ情報が保存されているシステムオブジェクトを作成します。 name で指定された名前が、他の lxc コマンドで、コンテナを特定する名前として使われます。

オブジェクトは /var/lib/lxc 内に作られる、自身の名前がついたディレクトリです。

オブジェクトは、アプリケーションが使用したり、参照したりする様々なリソースの定義です。 設定ファイルがより多くの情報を持つほど、コンテナやアプリケーションはより隔離されたものになります。

設定ファイルが config_file で指定されない場合、コンテナはデフォルトの隔離状態で作られます: プロセス、sysv ipc、マウントポイントです。

オプション

-f, --config config_file
コンテナの仮想化と隔離機能を設定するための設定ファイルを指定します。
-t, --template template
template は lxc-create コマンドが呼び出す、存在する 'lxc-template' スクリプトの短い名前です。 例えば、busybox, debian, fedora, ubuntu, sshd があります。 期待されるスクリプトの構造の詳細は、/usr/share/lxc/templates 内の例を参照してください。 加えて、実行可能なテンプレートスクリプトへのフルパスも指定することが可能です。rootfs の作成を行わないように "none" を指定することも可能です。
-B, --bdev backingstore
'backingstore' には 'dir', 'lvm', 'loop', 'btrfs', 'zfs', 'rbd', 'best' のいずれかを指定します。 デフォルトは 'dir' で、コンテナのルートファイルシステムが /var/lib/lxc/container/rootfs 以下のディレクトリであることを意味します。 'dir' にはオプションとして --dir ROOTFS を指定することも可能です。 このオプションは、デフォルトの代わりに特定のパス以下にコンテナの rootfs を置くということになります。 ('none' は 'dir' のエイリアスです。) 'btrfs' が指定された場合、ターゲットのファイルシステムは btrfs でなければいけません。 そして、コンテナの rootfs は新しい subvolume として作製されます。 このことにより、スナップショットによるクローンが作製可能になりますが、結果として rsync --one-filesystem が、別々のファイルシステムとして取り扱ってしまうことにもなります。 backingstore が 'lvm' である場合、lvm ブロックデバイスを使用します。 この時、以下のオプションが有効になります: --lvname lvname1 はデフォルト値のコンテナ名の LV の代わりに lvname1 という名前の LV を作成します。 --vgname vgname1 は、デフォルト値である lxc という volume group の代わりに vgname1 という名前の volume group 内に LV を作成します。 --thinpool thinpool1 は、デフォルトである lxc のという名前のプールの代わりに thinpool1 という名前のプール内にシンプロビジョニングされたボリュームとして LV を作成します。 --fstype FSTYPE は LV 上のファイルシステムをデフォルト値である ext4 の代わりに FSTYPE で指定したもので作成します。 --fssize SIZE はデフォルト値である 1G の代わりに SIZE で指定したサイズで LV を作成します。

backingstore が 'loop' の場合、'lvm' と同様に --fstype FSTYPE--fssize SIZE が使えます。これらの値のデフォルト値は 'lvm' の場合と同じです。

backingstore が 'rbd' の場合、ceph.conf に有効な設定がされており、ceph.client.admin.keyring が定義されている必要があります。 --rbdname RBDNAME を指定すると、RBDNAME という名前のブロックデバイスを作成します。このオプションを指定しない場合のデフォルトのブロックデバイス名はコンテナ名です。 --rbdpool POOL を指定すると、POOL という名前のプール内にブロックデバイスを作成します。このオプションを指定しない場合のデフォルトのプール名は 'lxc' です。

backingstore が 'best' の時、lxc は btrfs, zfs, lvm, dir の順に試行します。

-- template-options
これは template-options で指定したものをオプションとしてテンプレートへ渡します。 テンプレートでサポートされているオプションを調べるには、lxc-create -t TEMPLATE -h というコマンドが使えます。

共通オプション

ここで紹介するオプションは lxc コマンドの大部分で共通のものです。
-?, -h, --help
通常より長い使い方のメッセージを表示します。
--usage
使い方を表示します。
-q, --quiet
出力を抑制します。
-P, --lxcpath=PATH
デフォルトと別のコンテナパスを使用します。デフォルトは /var/lib/lxc です。
-o, --logfile=FILE
追加のログを FILE に出力します。デフォルトは出力しません。
-l, --logpriority=LEVEL
ログの優先度を LEVEL に設定します。デフォルトの優先度は ERROR です。以下の値を設定可能です: FATAL, CRIT, WARN, ERROR, NOTICE, INFO, DEBUG。

このオプションは追加のログファイルへのイベントログの優先度の設定である事に注意してください。stderr への ERROR イベントのログには影響しません。

-n, --name=NAME
NAME という名前でコンテナを識別します。コンテナ識別子のフォーマットは英数字の文字列です。
--version
バージョン番号を表示します。

診断

The container already exists
メッセージの通り、コンテナを作成しようとしたけれども、同じ名前のコンテナが存在しています。 lxc-ls コマンドを使って、システム上に存在する利用可能なコンテナのリストが表示できます。

作者

Daniel Lezcano <[email protected]>