「LXD」の版間の差分
(ページの作成:「Category:仮想化 en:LXD '''[https://linuxcontainers.org/lxd/ LXD]''' はコンテナの『ハイパーバイザ』であり Linux Containers の新しいユ...」) |
(同期) |
||
10行目: | 10行目: | ||
$ lxc-checkconfig |
$ lxc-checkconfig |
||
− | セキュリティ上の理由で、デフォルトの Arch カーネルでは非特権ユーザーでコンテナを実行できるようにはなっていません。しかしながら LXD はそうできることを必要とします。カーネルを自分でビルドして {{ic|CONFIG_USER_NS}} を有効にするか、[[AUR]] の {{AUR|linux- |
+ | セキュリティ上の理由で、デフォルトの Arch カーネルでは非特権ユーザーでコンテナを実行できるようにはなっていません。しかしながら LXD はそうできることを必要とします。カーネルを自分でビルドして {{ic|CONFIG_USER_NS}} を有効にするか、[[AUR]] の {{AUR|linux-userns}} や {{AUR|linux-lts-userns}} を使用してください。 |
+ | |||
+ | {{Note|{{ic|CONFIG_USER_NS}} 機能がなくてもコンテナを起動することはできます。[[#CONFIG_USER_NS 無しでコンテナを起動する]]を参照。}} |
||
=== Sub{u,g}id の設定 === |
=== Sub{u,g}id の設定 === |
||
44行目: | 46行目: | ||
{{ic|parent}} パラメータを設定することで LXD でコンテナに接続するブリッジを決めることができます。 |
{{ic|parent}} パラメータを設定することで LXD でコンテナに接続するブリッジを決めることができます。 |
||
+ | |||
+ | ==== ネットワーク設定例 ==== |
||
+ | |||
+ | LXD パッケージにはネットワークの設定例が付属しており {{ic|/usr/share/lxd/}} に保存されます。設定を使用するには以下のコマンドを実行してください: |
||
+ | |||
+ | $ ln -s /usr/share/lxd/dnsmasq-lxd.conf /etc/dnsmasq-lxd.conf |
||
+ | $ ln -s /usr/share/lxd/systemd/system/dnsmasq@lxd.service /etc/systemd/system/dnsmasq@lxd.service |
||
+ | $ ln -s /usr/share/lxd/netctl/lxd /etc/netctl/lxd |
||
+ | $ ln -s /usr/share/lxd/dbus-1/system.d/dnsmasq-lxd.conf /etc/dbus-1/system.d/dnsmasq-lxd.conf |
||
+ | |||
+ | [[NetworkManager]] を使用する場合、以下のようにシンボリックリンクを作成してください: |
||
+ | |||
+ | $ ln -s /usr/share/lxd/NetworkManager/dnsmasq.d/lxd.conf /etc/NetworkManager/dnsmasq.d/lxd.conf |
||
+ | |||
+ | {{ic|parent: lxcbr0}} を {{ic|parent: lxd}} に変更してください: |
||
+ | |||
+ | $ lxc profile edit default |
||
+ | |||
+ | 最後に、{{ic|dnsmasq@lxd.service}} と {{ic|netctl@lxd.service}} を[[起動]]・[[有効化]]してください。 |
||
+ | |||
+ | 上記のサンプル設定で問題が発生する場合、{{AUR|lxd}} のページにコメントを投稿してください。 |
||
== 基本的な使い方 == |
== 基本的な使い方 == |
||
− | LXD はデーモン (lxd バイナリ) とクライアント (lxc バイナリ) の2つに分かれています。デーモンを設定して実行した |
+ | LXD はデーモン (lxd バイナリ) とクライアント (lxc バイナリ) の2つに分かれています。デーモンを設定して実行したら、コンテナを作成できます: |
− | $ |
+ | $ lxc launch ubuntu:14.04 |
+ | もしくは、リモートの LXD ホストをイメージソースとして使うこともできます。LXD で設定済みのイメージを使用するには (images.linuxcontainers.org): |
||
− | イメージを LXD にインポートしたら、コンテナを起動できます: |
||
− | $ lxc launch |
+ | $ lxc launch images:centos/7/amd64 centos |
+ | == Tips and tricks == |
||
− | もしくは、リモートの LXD ホストをイメージのソースとして使うこともできます。イメージはコンテナの起動時に自動的にキャッシュされます: |
||
+ | === プロセスやファイルの制限を変更する === |
||
+ | ファイル記述子の制限やユーザーが使用できる最大プロセス数の制限を増やしたい場合、以下のコマンドを実行 (Arch Linux ではデフォルトで1024になっています): |
||
− | $ remote add images images.linuxcontainers.org |
||
+ | |||
− | $ launch images:centos/7/amd64 centos |
||
+ | # systemctl edit lxd |
||
+ | |||
+ | 以下のように設定してください: |
||
+ | |||
+ | [Service] |
||
+ | LimitNOFILE=infinity |
||
+ | LimitNPROC=infinity |
||
+ | TasksMax=infinity |
||
+ | |||
+ | 設定できたら lxd を再起動してください: |
||
+ | |||
+ | # systemctl restart lxd |
||
+ | |||
+ | == トラブルシューティング == |
||
+ | === CONFIG_USER_NS 無しでコンテナを起動する === |
||
+ | イメージを起動するにはイメージの生成時に {{ic|1=security.privileged=true}} が必要です: |
||
+ | |||
+ | $ lxc launch ubuntu:16.04 test_ubuntu -c security.privileged=true |
||
+ | |||
+ | もしくは既存のイメージを使う場合は設定を編集してください: |
||
+ | |||
+ | $ lxc config edit test_ubuntu |
||
+ | |||
+ | name: test_ubuntu |
||
+ | profiles: |
||
+ | - default |
||
+ | config: |
||
+ | ... |
||
+ | security.privileged: "true" |
||
+ | ... |
||
+ | devices: |
||
+ | root: |
||
+ | path: / |
||
+ | type: disk |
||
+ | ephemeral: false |
||
== 参照 == |
== 参照 == |
||
− | * [https://linuxcontainers.org/lxd/ |
+ | * [https://linuxcontainers.org/lxd/ LXD 公式ホームページ] |
− | * [https://github.com/lxc/lxd |
+ | * [https://github.com/lxc/lxd LXD の GitHub ページ] |
2016年10月30日 (日) 19:15時点における版
LXD はコンテナの『ハイパーバイザ』であり Linux Containers の新しいユーザー体験です。
目次
セットアップ
必要なソフトウェア
LXC と lxdAUR パッケージをインストールして、lxd.service
を起動してください。
実行しているカーネルがコンテナを起動できることを確認:
$ lxc-checkconfig
セキュリティ上の理由で、デフォルトの Arch カーネルでは非特権ユーザーでコンテナを実行できるようにはなっていません。しかしながら LXD はそうできることを必要とします。カーネルを自分でビルドして CONFIG_USER_NS
を有効にするか、AUR の linux-usernsAUR や linux-lts-usernsAUR を使用してください。
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 パッケージにはネットワークの設定例が付属しており /usr/share/lxd/
に保存されます。設定を使用するには以下のコマンドを実行してください:
$ ln -s /usr/share/lxd/dnsmasq-lxd.conf /etc/dnsmasq-lxd.conf $ ln -s /usr/share/lxd/systemd/system/dnsmasq@lxd.service /etc/systemd/system/dnsmasq@lxd.service $ ln -s /usr/share/lxd/netctl/lxd /etc/netctl/lxd $ ln -s /usr/share/lxd/dbus-1/system.d/dnsmasq-lxd.conf /etc/dbus-1/system.d/dnsmasq-lxd.conf
NetworkManager を使用する場合、以下のようにシンボリックリンクを作成してください:
$ ln -s /usr/share/lxd/NetworkManager/dnsmasq.d/lxd.conf /etc/NetworkManager/dnsmasq.d/lxd.conf
parent: lxcbr0
を parent: lxd
に変更してください:
$ lxc profile edit default
最後に、dnsmasq@lxd.service
と netctl@lxd.service
を起動・有効化してください。
上記のサンプル設定で問題が発生する場合、lxdAUR のページにコメントを投稿してください。
基本的な使い方
LXD はデーモン (lxd バイナリ) とクライアント (lxc バイナリ) の2つに分かれています。デーモンを設定して実行したら、コンテナを作成できます:
$ lxc launch ubuntu:14.04
もしくは、リモートの LXD ホストをイメージソースとして使うこともできます。LXD で設定済みのイメージを使用するには (images.linuxcontainers.org):
$ lxc launch images:centos/7/amd64 centos
Tips and tricks
プロセスやファイルの制限を変更する
ファイル記述子の制限やユーザーが使用できる最大プロセス数の制限を増やしたい場合、以下のコマンドを実行 (Arch Linux ではデフォルトで1024になっています):
# systemctl edit lxd
以下のように設定してください:
[Service] LimitNOFILE=infinity LimitNPROC=infinity TasksMax=infinity
設定できたら lxd を再起動してください:
# systemctl restart lxd
トラブルシューティング
CONFIG_USER_NS 無しでコンテナを起動する
イメージを起動するにはイメージの生成時に security.privileged=true
が必要です:
$ lxc launch ubuntu:16.04 test_ubuntu -c security.privileged=true
もしくは既存のイメージを使う場合は設定を編集してください:
$ lxc config edit test_ubuntu
name: test_ubuntu profiles: - default config: ... security.privileged: "true" ... devices: root: path: / type: disk ephemeral: false