LXC 内に Docker コンテナをデプロイする際にディスククォータを超えました。

LXC 内に Docker コンテナをデプロイする際にディスククォータを超えました。

ドッカーを実行するLXCコンテナがあります。多くのコンテナが正常に実行されていますが、追加できません。新しいDockerコンテナをデプロイしようとしていますが、次のエラーが発生します。

container init caused "join session keyring: create session key: disk quote exceeded": unknown

しかし、コンテナには十分な空き容量があり、ホストも同じです。私はdf -hこれを and と確認しましたdf -i(したがってインデックスノードではありません)

このエラーは何を意味し、回避策は何ですか?

答え1

ここでの問題はルートファイルシステムではなく、カーネルキーリングこのLXCスレッド非常によく説明されており、次の解決策があります。LXCホスト(LXCコンテナ内にない)次のように最大キー数を増やします。

echo 5000 | sudo tee /proc/sys/kernel/keys/maxkeys

5000もちろん任意です。現在持っている数字より大きい数字を選択してください。

LXDマネージャーStéphane Graberの言葉を引用すると、スレッドから:

Dockerがカーネルキーリングを使用しようとしていると思いますか?これは彼らの新しい行動であるに違いありません...

そしてseamusの信用また、このスレッドで提供されたコマンドで問題を解決しました。

GitHubに関する追加リファレンス

答え2

@Joshの答えに追加します。再起動後もこの変更を保持するには、/etc/sysctl.d更新されたカーネル値で以下のファイルを作成します。

# /etc/sysctl.d/99-custom.conf
kernel.keys.maxkeys=2000

入れ子になったコンテナや権限のないコンテナを多数起動する場合は、UID 1000000など、マッピングされたユーザーが所有する多くのプロセスを持つことができます。

関連情報