systemd-nspawn Advent Calendar 2017 4日目の記事です。
.nspawnファイルとはコンテナ個別の設定を行うために設置するファイルです
以下の場所に設置できます
- /etc/systemd/nspawn/machine.nspawn
- /run/systemd/nspawn/machine.nspawn
- /var/lib/machines/machine.nspawn
これは順に検索され、見つかった時点で検索を終了します。
例えば、/var/lib/machines/ubuntu
にコンテナがあり、/etc/systemd/nspawn/ubuntu.nspawn
と/run/systemd/nspawn/ubuntu.nspawn
にファイルを置いた場合は最初のファイルに書いた設定しか有効になりません。
また、コマンド引数の方が優先されるため、例えばnspawnファイルに
[Exec]
Boot=0
と書いたとしても、-bオプションを付けて起動すれば/sbin/initから起動します。
もう一点注意点として、/var/lib/machines/machine.nspawn
に置いたnspawnファイルはホスト側に影響するようなオプション
TemporaryFileSystem=, Bind=, BindReadOnly=, Capability= 等は使うことができません。
そのようなオプションを使う場合は/etc/systemd/nspawn/machine.nspawn
か/run/systemd/nspawn/machine.nspawn
に置いてください。
設定サンプル
[Exec]
# /sbin/initから起動させる
Boot=1
[Files]
# hostの/mntとコンテナの/var/tmpをつなげる
Bind=/mnt:/var/tmp
[Network]
# br0インターフェイスにブリッジする
Bridge=br0
その他詳しいことはman systemd.nspawn
を参照ください