一个容器把 CPU/内存吃满,同机其它容器全被拖死。设上限是基本的邻里责任。

示例配置

docker run -d --memory=512m --cpus=1.0 myapp
# compose
deploy:
  resources:
    limits:
      memory: 512M
      cpus: 1.0

要点速览

  • --memory 硬上限,超了 OOM 杀的是这个容器而非整机。
  • --cpus 限核数,避免单容器占满调度。
  • 生产务必设限,别信「它应该不会用那么多」。
不设资源上限的容器,是主机稳定性的定时炸弹。