LXDメモ
公式サイト: https://linuxcontainers.org/ja/lxd/
日本語ドキュメント: https://lxd-ja.readthedocs.io/ja/latest/
ホストのOSはDebian/Ubuntuを想定。個人的なメモです。
インストール
snapでlxdをインストールし、lxdグループにユーザーを追加する。
sudo apt install snapd # snapが入っていない場合はインストールする
sudo snap install lxd
sudo gpasswd -a akky lxd
LXDの初期設定
LXDのストレージやネットワークを設定する。
ストレージは後から追加したり、パーティションやイメージファイルを拡張して容量を増やすこともできるが、面倒なのでLXDのストレージ用に専用ディスク(SSD/HDD)を用意しておくのがおすすめ。
ネットワークについてはコンテナのIPアドレスの割当を外部のDHCPサーバで行う場合はブリッジの設定が必要。特になければデフォルト(LXD内部のdnsmasqで割当)のままにする。
lxd init
Would you like to use LXD clustering? (yes/no) [default=no]:
Do you want to configure a new storage pool? (yes/no) [default=yes]:
Name of the new storage pool [default=default]:
Name of the storage backend to use (dir, lvm, ceph, btrfs) [default=btrfs]:
Would you like to create a new btrfs subvolume under /var/snap/lxd/common/lxd? (yes/no) [default=yes]: no
Create a new BTRFS pool? (yes/no) [default=yes]:
Would you like to use an existing empty block device (e.g. a disk or partition)? (yes/no) [default=no]: yes
Path to the existing block device: /dev/sdX # lXDストレージ用デバイス
Would you like to connect to a MAAS server? (yes/no) [default=no]:
Would you like to create a new local network bridge? (yes/no) [default=yes]:
What should the new bridge be called? [default=lxdbr0]:
What IPv4 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]:
What IPv6 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]:
Would you like the LXD server to be available over the network? (yes/no) [default=no]:
Would you like stale cached images to be updated automatically? (yes/no) [default=yes]
Would you like a YAML "lxd init" preseed to be printed? (yes/no) [default=no]:
lxcコマンド
コンテナの作成
lxc launch ubuntu:20.04 c0 # ubnutu
lxc launch images:debian/10/cloud c1 # debian
lxc launch images:archlinux/cloud c2 # arch linux
配布イメージの検索
lxc image list images:arch # images:で配布されているイメージを検索できる
コンテナのコマンド実行
--
の後にコマンドを書く
lxc exec c0 -- echo "hello world"
hello world
ルートユーザーでログイン
lxc exec c0 -- su # bashとかでもOK
一般ユーザーでログイン
lxc exec c0 -- su - ubuntu