開発環境でDockerコンテナを実行しています。値を設定しようとしていますfs.inotify.max_user_instances
。
私はドッカーコンテナ内のrootユーザーなので、これはsudo
必要ありません。実際に実行すると、sudo command_text
次のようになります。
bash:sudo:コマンドが見つかりません
sysctl fs.inotify.max_user_instances=8192
それで価値を加えるために走りましたmax_user_instances
。驚いたことに、次のエラーが発生しました。
sysctl: 'fs.inotify.max_user_instances' キーに対する権限が拒否されました。
に基づいてこの回答私はルートでさえシステム全体に影響を与えるので、いくつかのことを変更することはできません。 (ある意味では、ルートがシステムの所有者であり、システム全体が必要な場合はシステムを変更できる必要があるため、これは愚かなようですが)。
フラグの使用に違いはありません-w
。それでも同じエラーが発生します。
echo 8192 > /proc/sys/fs/inotify/max_user_instances
そのため、そのファイルの値を直接上書きしようとしました。わかりました:
bash: /proc/sys/fs/inotify/max_user_instances: 読み取り専用ファイルシステム
ファイルシステム権限を変更してみませんでした。今の時点では、これは良い考えではないかもしれないと思うからです。
rootユーザーとしてinotify
Dockerコンテナ内のクォータを安全に増やすにはどうすればよいですか?
修正する
試してみましたが、chmod +w max_user_instances
次のエラーが発生しました。
chmod: "max_user_instances"の権限変更: 読み取り専用ファイルシステム
私のオペレーティングシステムは次のとおりです
root@panel:/# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
NAME="Debian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
答え1
簡単に言えば、Dockerはchroot
オーバーレイファイルシステム技術を使用してコンテナを実行します。
実行中のコンテナは、ホストカーネルとそのカーネルパラメータ(sysctl)を使用します。
擬似ファイルシステム(/proc
、、、/sys
…)はホストから読み取り専用としてマウントされます。
ホストのカーネルパラメータに対する変更は、実行中のDockerコンテナにすぐに表示されます。 Dockerコンテナ内では、ホストのカーネルパラメータを変更することはできません(読み取り専用)。
Dockerには、単純さと質問に答えるために言及しない詳細がたくさんあります。詳細については、Dockerのマニュアルを参照してください。