/proc/sys/vm/drop_cachesに書き込むには、どのLinux機能が必要ですか?

/proc/sys/vm/drop_cachesに書き込むには、どのLinux機能が必要ですか?

次のようにDockerコンテナ内でファイルシステムキャッシュを消去しようとします。

docker run --rm ubuntu:vivid sh -c "/bin/echo 3 > /proc/sys/vm/drop_caches"

このコマンドを実行すると

sh: 1: cannot create /proc/sys/vm/drop_caches: Read-only file system

/procこれはコンテナ内部で書き込めないため、予想される現象です。

今私が電話するとき

docker run --rm --privileged ubuntu:vivid sh -c "/bin/echo 3 > /proc/sys/vm/drop_caches"

--privilegedコンテナがホストシステムで(ほぼ)すべての操作を実行できるため、これは機能します。

私の質問は次のとおりです。コマンドでどのLinux機能を設定する必要があるのか​​、どうすればわかりますか?

docker run --rm --cap-add=??? ubuntu:vivid sh -c "/bin/echo 3 > /proc/sys/vm/drop_caches"

設定なしでこれを行うには--privileged

ベストアンサー1

Gillesが受け入れた答えに対する付録:dockerを使用するとき、より簡単な方法で作成/proc/sys/vm/drop_caches(または/proc一般的に正確に言えば)目標を達成しました。

docker run -ti --rm -v /proc:/writable_proc ubuntu:vivid bash
# echo 3 > /writable_proc/sys/vm/drop_caches

それが私の目的のためです。

役に立つ回答に心から感謝します!

おすすめ記事