lxc-copy(1) 既存のコンテナのコピー

SYNOPSIS

lxc-copy {-n, --name name} [-P, --lxcpath path] {-N, --newname newname} [-p, --newpath newpath] [-B, --backingstorage backingstorage] [-s, --snapshot] [-K, --keepdata] [-M, --keepmac] [-L, --fssize size [unit]] [-- hook arguments] lxc-copy {-n, --name name} [-P, --lxcpath path] [-N, --newname newname] [-p, --newpath newpath] {-e, --ephemeral} [-B, --backingstorage backingstorage] [-s, --snapshot] [-K, --keepdata] [-M, --keepmac] [-L, --fssize size [unit]] [-- hook arguments] lxc-copy {-n, --name name} [-P, --lxcpath path] {-N, --newname newname} [-p, --newpath newpath] {-R, --rename}

説明

lxc-copy は、すでに存在するコンテナのコピーを作成します。オプションを指定することで、作成後にそのコピーを起動できます (コピーは一時的なコピーまたは永続的なコピーのどちらも可能です)。 このコマンドは lxc-clonelxc-start-ephemeral の置き換えのコマンドです。

lxc-copy は、既存のコンテナのコピーを作成します。 コピーは元のコンテナの完全なクローンにできます。この場合、単にコンテナのルートファイルシステムのすべてが、新しいコンテナにコピーされます。 また、スナップショットを取得することも可能です。すなわち、元のコンテナの小さなコピーオンライトのコピーにするということです。この場合、コピーで指定するバッキングストレージがスナップショットをサポートしている必要があります。 スナップショットをサポートしているバッキングストレージは、現時点では aufs、btrfs、lvm (lvm デバイスはスナップショットのスナップショットはサポートしていません)、overlay、zfs です。

コピー先のバッキングストレージは、元のコンテナと同じタイプになるでしょう。ただし、ディレクトリバックエンドのコンテナのスナップショットは aufs と overlayfs で取得できますので例外です。

-e オプションを指定した場合は、元のコンテナの一時的なスナップショットを作成し、起動します。一時的なコンテナの場合、設定ファイルに lxc.ephemeral = 1 がセットされ、シャットダウン後に削除されます。 -e-D を同時に指定すると、元のコンテナの一時的ではないスナップショットを作成し、起動します。

-e を指定した場合で、-N でコンテナの名前を指定しない場合は、スナップショットの名前はランダムで命名されます。

-e で作成し、起動したコンテナは、コンテナ独自のマウントを行えます。現時点では aufsbindoverlay という 3 つのタイプのマウントがサポートされています。 マウントタイプは -m オプションのサブオプションとして指定します。この指定はカンマ区切りで複数回指定できます。 aufsoverlay マウントの場合は、現時点では -m overlay=/src:/dest のように指定します。マウント先の dest を指定しない場合は、destsrc と同じになります。 読み込み専用の bind マウントは -m bind=/src:/dest:ro のように指定します。読み書き可能な bind マウントは -m bind=/src:/dest:rw のように指定します。bind マウントのデフォルトは読み書き可能ですので、読み書き可能なマウントを行う場合は省略できます。マウント先の dest を指定しない場合は、destsrc と同じになります。 複数のマウントを行う場合の例を示すと、-m bind=/src1:/dest1:ro,bind=/src2:ro,overlay=/src3:/dest3 のようになります。

-m オプションで指定するマウント、オプション、指定フォーマットは変更される可能性があります。

オプション

-N,--newname newname
コピー先のコンテナの名前。
-p,--newpath newpath
コピー先のパス。
-R,--rename
元のコンテナをリネームします。
-s,--snapshot
元のコンテナのスナップショットを作成します。コピー先のバッキングストレージがスナップショットをサポートしている必要があります。現時点では aufs、btrfs、lvm、overlay、zfs が対象となります。
-F,--foreground
スナップショットしたコンテナをフォアグラウンドで起動します。スナップショットしたコンテナのコンソールは現在の tty にアタッチされます。(このオプションは -e と同時の場合のみ指定できます。)
-d, --daemon
スナップショットしたコンテナをデーモンで起動します (一時的なコンテナではこのモードがデフォルトです)。 コンテナは tty を持ちませんので、エラーが発生しても何も表示されません。エラーをチェックするにはログファイルを使います。(このオプションは -e と同時の場合のみ指定できます。)
-m, --mount mounttype

スナップショットするコンテナで行うマウントを指定します。マウントタイプは {aufs, bind, overlay} のどれかで指定します。例えば -m bind=/src:/dest:ro,overlay=/src:/dest のようになります。(このオプションは -e と同時の場合のみ指定できます。)

-B, --backingstorage backingstorage
コピー先コンテナのバッキングストレージのタイプを指定します。ここで 'backingsotrage' は 'aufs'、'btrfs'、'dir'、'lvm'、'loop'、'overlay'、'zfs' のどれかです。
-L, --fssize size [unit]
'lvm' ファイルシステムのサイズを指定します。
-D, --keepdata
-e オプションと同時にこのオプションを使うと、一時的でないコンテナを作成し、起動します。
-K, --keepname
このオプションを指定すると、元のコンテナのホスト名をコピー先でもそのまま使います。
-M, --keepmac
このオプションを指定すると、元のコンテナの MAC アドレスをコピー先でもそのまま使います。

コピー時のフック

コピーされるコンテナに 1 つ以上の lxc.hook.clone の指定が存在する場合、指定されたフックは新しいコンテナに対して呼ばれます。 クローンフックに渡される最初の 3 つの引数は、コンテナ名、セクション ('lxc')、フックタイプ ('clone') となります。 lxc-copy に渡される追加の引数は、フックプログラムに渡される引数の 4 番目以降となります。 LXC_ROOTFS_MOUNT 環境変数には、コンテナの root ファイルシステムがマウントされるパスが与えられます。 設定ファイルのパス名は LXC_CONFIG_FILE に、新しいコンテナ名は LXC_NAME、古いコンテナ名は LXC_SRC_NAME に、rootfs のあるパスまたはデバイスは LXC_ROOTFS_PATH に保存されます。

共通オプション

ここで紹介するオプションは 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
バージョン番号を表示します。

AUTHOR

Christian Brauner <[email protected]>