LXD
LXD はコンテナの『ハイパーバイザ』であり Linux Containers の新しいユーザー体験です。
目次
セットアップ
必要なソフトウェア
LXC と lxdAUR パッケージをインストールして、lxd.service
を起動してください。
実行しているカーネルがコンテナを起動できることを確認:
$ lxc-checkconfig
セキュリティ上の理由で、デフォルトの Arch カーネルでは非特権ユーザーでコンテナを実行できるようにはなっていません。しかしながら LXD はそうできることを必要とします。カーネルを自分でビルドして CONFIG_USER_NS
を有効にするか、AUR の linux-user-ns-enabledAUR を使用してください。
Sub{u,g}id の設定
root の sub{u,g}ids を設定して、LXD が非特権のコンテナを作成できるようにします:
$ echo "root:1000000:65536" | sudo tee -a /etc/subuid /etc/subgid
非特権ユーザーとして LXD にアクセス
デフォルトでは LXD デーモンは lxd
グループのユーザーからのアクセスを許可するので、ユーザーをグループに追加してください:
$ usermod -a -G lxd <user>
LXD のネットワーク
LXD は LXC のネットワーク機能を使います。デフォルトではコンテナを lxcbr0
ネットワークデバイスに接続します。コンテナのブリッジを設定する方法は LXC のネットワーク設定のドキュメントを読んでください。
lxcbr0
以外のインターフェイスを使いたい場合、lxc のコマンドラインツールを使ってデフォルト設定を編集してください:
$ lxc profile edit default
エディタで設定ファイルが開きます。デフォルトでは以下の内容になっています:
name: default config: {} devices: eth0: name: eth0 nictype: bridged parent: lxcbr0 type: nic
parent
パラメータを設定することで LXD でコンテナに接続するブリッジを決めることができます。
基本的な使い方
LXD はデーモン (lxd バイナリ) とクライアント (lxc バイナリ) の2つに分かれています。デーモンを設定して実行したので、イメージをインポートすることができます:
$ lxd-images import ubuntu --alias ubuntu
イメージを LXD にインポートしたら、コンテナを起動できます:
$ lxc launch ubuntu
もしくは、リモートの LXD ホストをイメージのソースとして使うこともできます。イメージはコンテナの起動時に自動的にキャッシュされます:
$ remote add images images.linuxcontainers.org $ launch images:centos/7/amd64 centos