次のように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
それが私の目的のためです。
役に立つ回答に心から感謝します!