LXDをインストールしてコンテナを立ち上げます。
Table of Contents
1 LXDをインストールする
LXDを使うために以下のパッケージをインストールします。
$ sudo apt install -y lxd lxd-client lxd-tools criu
ZFSを使う場合は以下のパッケージもインストールします。
$ sudo apt install -y zfsutils-linux
LXDデーモンの準備が完了するのを待ちます。
$ sudo lxd waitready
LXDを初期化します。defaultプロファイルが作成されます。lxdbr0はNATとして動作します。
$ sudo lxd init Would you like to use LXD clustering? (yes/no) [default=no]: no Do you want to configure a new storage pool? (yes/no) [default=yes]: yes Name of the new storage pool [default=default]: default Name of the storage backend to use (dir, lvm, zfs) [default=zfs]: dir Would you like to connect to a MAAS server? (yes/no) [default=no]: no Would you like to create a new network bridge? (yes/no) [default=yes]: yes What should the new bridge be called? [default=lxdbr0]: lxdbr0 What IPv4 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]: auto What IPv6 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]: none Would you like LXD to be available over the network? (yes/no) [default=no]: no Would you like stale cached images to be updated automatically? (yes/no) [default=yes] yes Would you like a YAML "lxd init" preseed to be printed? (yes/no) [default=no]: no
パイプを使ってlxd initの応答を自動化することもできます。
$ cat <<EOF | sudo lxd init no yes default dir no yes lxdbr0 auto none no yes no EOF
lxdグループに追加しておけばsudoなしでlxdを実行できるようになります。グループに追加後、一度再起動します。
$ sudo gpasswd -a "${USER}" lxd $ sudo reboot
2 コンテナを立ち上げる
lxc launchはlxc initとlxc startを同時に実行するものです。lxc execはコンテナ上でコマンドを実行するコマンドです。
$ lxc launch images:debian/stretch debian $ lxc exec debian ip a s 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 5:eth0@if6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 00:16:3e:3c:1d:23 brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 10.26.102.87/24 brd 10.26.102.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fd42:6bb1:545e:554b:216:3eff:fe3c:1d23/64 scope global mngtmpaddr dynamic valid_lft 3596sec preferred_lft 3596sec inet6 fe80::216:3eff:fe3c:1d23/64 scope link valid_lft forever preferred_lft forever
上記のlxc launchは下記のlxc initとlxc startと同様になります。lxc initはイメージからコンテナを作成するコマンドです。lxc startはコンテナを起動するコマンドです。
$ lxc init images:debian/stretch debian $ lxc start debian $ lxc exec debian ip a s