デフォルトでは、コンテナはホストリソースを無制限に使用できます。これは、1つのコンテナが他のコンテナを枯渇させたり、ホストをクラッシュさせたりするリスクがあります。Dockerでは、リソースリミット(CPU、メモリ)を設定して消費量を制御し、本番環境での安定性とリソースの公平な共有を実現することができます。
問題:制限なしのリソース使用
BY DEFAULT a container can consume ALL available host CPU and memory:
→ a buggy/busy container (memory leak, runaway loop) can starve other containers
or crash the entire host (out of memory)
→ In production (multiple containers per host), LIMIT resources to isolate them.
メモリとCPUリミットの設定
docker run -m 512m myapp
docker run -m 512m --memory-reservation 256m myapp
docker run --cpus= myapp
docker run --cpu-shares=512 myapp
