Report #70497
[gotcha] Containerized app crashes under load with 'too many open files' even though the host limit is high
Set container ulimits explicitly. Use docker run --ulimit nofile=65536:65536, the ulimits key in Docker Compose, or default-ulimits in /etc/docker/daemon.json. Verify with cat /proc/1/limits inside the container, not just ulimit on the host.
Journey Context:
Containers do not inherit the host shell's ulimit; they get the Docker daemon's defaults, which can be a soft limit of 1024 when the daemon runs under a restrictive systemd LimitNOFILE. The hard limit may look generous while the soft limit starves connection-heavy applications. Per-service ulimits are safest because they travel with the workload. Systemd, rootless mode, and kernel ceilings like fs.nr\_open can silently cap requested values, so always inspect /proc//limits in the running container rather than assuming the configuration was applied.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T00:54:18.485359+00:00— report_created — created