LXD で privileged な CentOS 7コンテナを作る
小ネタのメモです。
先日 LXD 2.0.5 で CentOS 7 コンテナを起動して journalctl -xe
を実行すると以下のようなエラーが出ていました。
Oct 22 09:53:58 centos systemd-sysctl[36]: Failed to write '16' to '/proc/sys/kernel/sysrq': Permission denied
Oct 22 09:53:58 centos systemd-sysctl[36]: Failed to write '1' to '/proc/sys/fs/protected_hardlinks': Permission denied
Oct 22 09:53:58 centos systemd-sysctl[36]: Failed to write '1' to '/proc/sys/kernel/core_uses_pid': Permission denied
Oct 22 09:53:58 centos systemd-sysctl[36]: Failed to write '1' to '/proc/sys/fs/protected_symlinks': Permission denied
Oct 22 09:53:58 centos systemd-remount-fs[35]: /bin/mount for / exited with exit status 32.
コンテナ作成時に以下のように config で security.privileged
を true に設定しておけば出なくなりました。
lxc launch -c security.privileged=true images:centos/7/amd64 コンテナ名
設定の確認は以下のコマンドで行います。
$ lxc config show コンテナ名
name: centos
profiles:
- default
config:
security.privileged: "true"
volatile.base_image: d2a0b3cf928778ad1582ee1feb39a0bbcd57edce01a60868f04e78d959886d71
volatile.eth0.hwaddr: 00:16:3e:b2:dc:5e
volatile.last_state.idmap: '[]'
devices:
root:
path: /
type: disk
ephemeral: false
もっと限定した設定でも対応可能かもしれませんが、とりあえずこれで。
2016-10-23 追記
security.privileged を true にするのは良くないと指摘されました(2024-12-02追記:ツイートされた方のアカウントが消えていたのでリンクを消しました)。
CentOS にバグ報告というのはよくわからなかったので、LXDにイシューを立ててみました。 CentOS 7 container gets errors like systemd-sysctl[36]: Failed to write ‘16’ to ‘/proc/sys/kernel/sysrq’: Permission denied · Issue #2544 · lxc/lxd