개발 환경에서 Docker 컨테이너를 실행하고 있습니다. 값 을 설정하려고 합니다 fs.inotify.max_user_instances
.
나는 도커 컨테이너 내부의 루트 사용자이므로 이것이 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: 읽기 전용 파일 시스템
파일 시스템 권한을 변경해 보지 않았습니다. 지금 시점에서는 이것이 좋은 생각이 아닐 수도 있다고 생각하기 때문입니다.
루트 사용자로서 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 매뉴얼을 참조하세요.