インストール

リリースを選択する

LXD では 2 つのリリースブランチが並行してメンテナンスされています:

  • LTS リリース (LXD 2.0.x)
  • フィーチャーリリース (LXD 2.x)

LTS リリースは本番環境での使用におすすめです。定期的なバグフィックスとセキュリティアップデートが行われますが、新しい機能の追加や動作が変わるような変更は行われないためです。

LXD の新機能のすべてと月次の更新を取得したい場合は、フィーチャーリリースをお使いください。

パッケージの取得

Alpine Linux

LXD のフィーチャーブランチをインストールするには、以下を実行します:

apk add lxd

ArchLinux

LXD の AUR パッケージの使い方については こちら をご覧ください。

もしくは、snap パッケージを ArchLinux 上で使うこともできます (後述)。

いずれの場合でも、linux-userns カーネルをビルドしてインストールする必要があります。

Fedora

LXD の COPR リポジトリの使い方については こちら をご覧ください。

もしくは、snap パッケージを Fedora 上で使うこともできます (後述)。

Gentoo

LXD のフィーチャーブランチをインストールするには、以下を実行します:

emerge --ask lxd

Ubuntu 14.04 LTS

LXD の LTS ブランチをインストールするには、以下を実行します:

apt install -t trusty-backports lxd lxd-client

Ubuntu 16.04 LTS

LXD の LTS ブランチをインストールするには、以下を実行します:

apt install lxd lxd-client

LXD のフィーチャーブランチをインストールするには、以下を実行します:

apt install -t xenial-backports lxd lxd-client

Snap パッケージ (ArchLinux, Debian, Fedora, OpenSUSE, Ubuntu)

LXD 開発元では、多数の Linux ディストリビューションで動作する snap パッケージを作成し、テストしています。

開発元で現在、snap パッケージをテストしている Linux ディストリビューションのリストは こちら にあります。

これらのディストリビューションでは、こちらの手順 に従い、snapd をインストールする必要があります。

その後、LXD を以下のようにインストールできます:

snap install lxd

MacOS 用クライアント

LXD 開発元では、macOS 用の LXD クライアントのビルドを Homebrew 経由で配布しています。

LXD のフィーチャーブランチをインストールするには、以下を実行します:

brew install lxc

Windows 用クライアント

Windows 用の LXD クライアントのネイティブビルドは こちら にあります。

ソースからのインストール

LXD をソースからビルドしてインストールする方法は こちら にあります。

初期設定

コンテナを作成する前に、ストレージやネットワーク環境について少しだけ設定する必要があります。

この設定は以下のように実行して行います:

sudo lxd init

アクセスコントロール

LXD のアクセスコントロールは、グループメンバーシップに基づいて行います。 root ユーザおよび "lxd" グループのメンバーはローカルデーモンと対話できます。

"lxd" グループがシステムにない場合は、作成した後、LXD デーモンを再起動します。 そして、信用するユーザを "lxd" グループに追加します。このグループに属するユーザ全員が、LXD を完全に制御できます。

グループメンバーシップはログイン時にのみ追加されるので、追加後にあなたのユーザセッションを閉じて再度開くか、LXD と通信したいシェル上で "newgrp lxd" コマンドを実行する必要があります

コンテナの作成と使用

コンテナを作成するのは簡単です:

lxc launch ubuntu:16.04 first

これで、新しい Ubuntu 16.04 コンテナが作成され、起動します。このコンテナは以下のように確認できます:

lxc list

ここで作成し、起動したコンテナは "first" という名前です。"lxc launch ubuntu:16.04" のように名前を指定せずにコマンドを実行し、ランダムな名前になるように LXD を実行することもできます。

さて、これでコンテナが起動しています。以下のようにコンテナの内部でシェルを実行できます:

lxc exec first -- /bin/bash

また、以下のように直接コマンド実行もできます:

lxc exec first -- apt-get update

コンテナからファイルを取得するには以下のようにします:

lxc file pull first/etc/hosts .

コンテナへファイルを送るには以下のようにします:

lxc file push hosts first/tmp/

コンテナを停止するには以下のようにします:

lxc stop first

完全にコンテナを削除するには:

lxc delete first

コンテナイメージ

LXD はイメージベースです。コンテナはイメージから作る必要があります。そして LXD で色々な処理を行う前に、イメージストアにイメージを取得していなければいけません。

イメージストアにイメージを取得する方法は 3 つあります:

  1. ビルトインされているイメージ用リモートサーバを使う
  2. イメージサーバとしてリモートの LXD を使う
  3. イメージの tarball を手動でインポートする

ビルトインされているイメージ用リモートサーバを使う

LXD にはデフォルトでイメージを提供するリモートサーバが 3 つ登録されています:

  1. ubuntu: (stable Ubuntu イメージ用 )
  2. ubuntu-daily: (daily Ubuntu イメージ用 )
  3. images: (その他の多数のディストリビューション用)

これらのビルトインのリモートサーバからコンテナを起動するには、以下のように実行します:

lxc launch ubuntu:14.04 my-ubuntu
lxc launch ubuntu-daily:16.04 my-ubuntu-dev
lxc launch images:centos/6/amd64 my-centos

イメージサーバとしてリモートサーバを使う

リモートのイメージサーバを使うと、リモートサーバとして追加してそれを使うだけですので、とても簡単です:

lxc remote add my-images 1.2.3.4
lxc launch my-images:image-name your-container

イメージリストは以下のように取得できます:

lxc image list my-images:

手動でイメージをインポートする

lxd 互換のイメージファイルが手元にある場合は、以下のようにインポートできます:

lxc image import <file> --alias my-alias

その後、以下のようにコンテナを起動します:

lxc launch my-alias my-container

詳しくはイメージの仕様をご覧ください。

複数のホスト

"lxc" コマンドラインツールは複数の LXD サーバと通信できます。デフォルトではローカルの LXD と通信します。

リモート操作には、リモートサーバ上で以下の 2 つのコマンドを実行しておく必要があります:

lxc config set core.https_address "[::]"
lxc config set core.trust_password some-password

最初のコマンドは、すべてのアドレスのポート 8443 にバインドするように LXD を設定しています。次のコマンドは、新しくクライアントがこのサーバと接続するときに使うパスワードを設定しています。

このリモートの LXD と通信を行うために、以下のようにリモートホストを追加します:

lxc remote add host-a <ip address or DNS>

このコマンドを実行すると、リモートサーバのフィンガープリントの確認と、パスワードを問い合わせるプロンプトが表示されるはずです。

そのあとで、コンテナとイメージの前にリモートホスト名をつけて、先のコマンドと同様に使用します:

lxc exec host-a:first -- apt-get update