lxd
とlxc
について#
LXDはよくLXCと混同されます。そしてLXDがlxd
コマンドとlxc
コマンドを提供するという事実が混同の一因となっています。
LXD対LXC#
LXDとLXCはLinuxコンテナの2つの全く別の実装です。
LXCはLinuxカーネルのコンテナ機能に対する低レベルのユーザー空間のインタフェースです。
LXCはツール(lxc-*
コマンド)、テンプレート、そしてライブラリと言語バインディングから構成されます。
LXDはLinuxコンテナの取り扱いを簡単にする目的で作られている、より直観的でユーザーフレンドリなツールです。 LXDはLXCのツールとディストリビューションのテンプレートシステムの代替となるものであり、ネットワーク上で制御可能なことにより実現される機能も追加されています。 内部では、LXDはコンテナの作成と管理にLXCを使用しています。
LXDはLXCがサポートする機能のスーパーセットを提供し、より簡単に使えます。 ですので、どちらのツールを使うべきかわからない場合は、LXDを選ぶのが良いでしょう。 LXCはLXDをサポートしないディストリビューション上でLinuxコンテナを稼働させたい上級ユーザーへの選択肢としてとらえるべきです。
LXDデーモン#
LXDの中心的な部分はLXDデーモンです。 それは持続的にバックグラウンドで稼働し、インスタンスを管理し、全てのリクエストを処理します。 デーモンはREST APIを提供し、直接アクセスすることもクライアント経由(例えば、LXDに同梱のデフォルトのコマンドラインクライアント)でアクセスすることもできます。
LXDデーモンについての詳細な情報はデーモンの動作を参照してください。
lxd
対lxc
#
LXDを制御するには、通常lxd
とlxc
という2つの異なるコマンドを使います。
- LXDデーモン
lxd
コマンドはLXDデーモンを制御します。 通常デーモンは自動的に起動しますので、ほとんどの場合lxd
コマンドを使う必要はありません。 例外はLXDの初期化のためにlxd init
サブコマンドを実行するときです。またデーモンのデバッグや管理のためのサブコマンドもあります。しかしこれは上級ユーザーのみを想定したものです。 全ての利用可能なサブコマンドの概要は
lxd --help
を参照してください。- LXDクライアント
lxc
コマンドはLXDのコマンドラインベースのクライアントで、LXDデーモンとやりとりするのに使えます。 インスタンス、サーバー設定、そしてLXD内で作成する全てのエンティティを管理するためにlxc
コマンドを使用できます。 全ての利用可能なサブコマンドの概要はlxc --help
を参照してください。lxc
ツールはLXDデーモンとのやり取りに使用できる唯一のクライアントではありません。 API、UI、あるいは独自のLXDクライアントを使用することもできます。