Plamoテンプレートを使ったコンテナの作成
前回,lxc-plamo
)lxc-create
コマンドを使ってコンテナを作成するときに使われます。以下のように実行するのでしたね。
~$ sudo lxc-create -n ct01 -t plamo
これで,ct01
という名前のPlamoコンテナ環境が作成されました。このコンテナは,
コンテナの作成に先立ち,/etc/{subuid,subgid}
の設定が必要です。ここでは,taro
というユーザに割り当てます。
~$ sudo usermod -v 100000-165535 -w 100000-165535 taro ~$ cat /etc/subuid taro:100000:65536 ~$ cat /etc/subgid taro:100000:65536
また,lxc-create
コマンド実行時に読み込まれるtaro
ユーザ用のデフォルトファイル~/.config/
)
~$ cat ~/.config/lxc/default.conf lxc.id_map = u 0 100000 65536 lxc.id_map = g 0 100000 65536 lxc.network.type = veth lxc.network.link = lxcbr0 lxc.network.flags = up
これらの非特権コンテナに関する詳細は,
~$ lxc-create -n ct01 -t plamo This template can't be used for unprivileged containers. You may want to try the "download" template instead. lxc_container: container creation template for ct01 failed lxc_container: Error creating container ct01
コンテナの作成に失敗してしまいました。そうです。一般ユーザ権限では,
~$ lxc-create -n ct01 -t download -- -d plamo -r 5.x -a amd64
アーキテクチャにamd64
と指定するあたりは,
LXCのダウンロード用サーバから,lxc.
で設定したユーザ名前空間内で)
一般ユーザ権限で作成したコンテナ環境
ダウンロードした作成済みコンテナイメージは,lxc-plamo
)
まず,
lxc-create
コマンドを実行すると,lxc-usernsexec
コマンドの引数として,lxc.
で設定したユーザ名前空間内で,root
としてタスクが実行されます。その結果,lxc.
で設定したユーザ名前空間内にマッピングしたUID/
なお,lxc.
で設定したユーザ名前空間において,mknod
は実行できません。そのため,mknod
の実行をともなう処理はスキップして展開されます。代わりに,/usr/
)
このように,
Plamoコンテナイメージのバリアント
現在,default
とmini
が用意されています。先に示した例では,default
バリアントのコンテナイメージが使われます。一般ユーザ権限で,mini
バリアントのコンテナ環境を作成する場合は,
~$ lxc-create -n ct01 -t download -- -d plamo -r 5.x -a amd64 --variant=mini
また,large
バリアントとfull
バリアントのコンテナイメージも用意されています。以下のように実行することで,
~$ lxc-create -n ct01 -t download -- -d plamo -r 5.x -a amd64 --variant=large \ > --server=repository.plamolinux.org --keyid=0xC0B578C84772EC0D
各バリアントのパッケージ構成は以下のようになっています。
バリアント | 作成済みコンテナイメージのパッケージ構成 | サイズ |
---|---|---|
default |
00_ と01_ カテゴリのパッケージを収録し, |
約240MB |
mini |
00_ ~03_ カテゴリのパッケージを収録し, |
約475MB |
large |
00_ ~05_ カテゴリのパッケージを収録した構成 |
約1. |
full |
00_ ~10_ すべてのカテゴリとcontrib の一部のカテゴリのパッケージを収録した構成 |
約3. |
large
バリアントやfull
バリアントはサイズが大きく,
コンテナの初期パスワード
前回のlxc-create
コマンドを使ってPlamoコンテナを作成すると,root
のパスワードが暫定的に"root
"に設定されます。この仕様は,
LXCの開発当初は,
この問題を受けて,
ただし,
筆者は,lxc-create
コマンドからテンプレートが呼び出されて,
一方,
- 作成済みコンテナイメージのパスワードを一律無効化にする
- ダウンロードテンプレートをメインのLXCソースツリーで管理しない
パスワードの一律無効化は,
メインのLXCソースツリーで,
いずれにしても,