首页/云/云与容器速查/docker update 调整容器限制
容器与 Docker106 条

docker update 调整容器限制

在线更新容器的资源限制与重启策略:内存、CPU、重启策略可在不重建容器的情况下调整;部分参数(端口/挂载)不支持热改。

云与容器速查云更新于 2026-10-13

在线调整容器限额

docker update 修改已运行容器的资源限制与重启策略,不需要重建容器:内存上限、CPU 配额、进程数限制和重启策略都可以热调,改动写入容器配置后由内核 cgroup 生效。端口映射、挂载、网络与环境变量这类在创建时确定的内容不支持热改,只能重建容器或改用可动态调整的配置注入方式。

基本信息

语法docker update [--memory 512m] [--cpus 1] 容器名
可热改内存与 swap 上限、CPU 配额与权重、Pids 限制、重启策略
不可热改端口映射、卷挂载、网络归属、环境变量、镜像本身
生效方式写入 HostConfig,由 cgroup 生效,容器进程不需要重启
验证docker inspect -f '{{.HostConfig.Memory}}' 容器名
边界Swarm 服务需用 docker service update,改容器不会改服务定义

典型使用场景

  • 应急止血:应用内存泄漏时先收紧内存上限,防止拖垮宿主机上其他服务
  • 把长期无限制的容器补上上限,避免单个容器吃满 CPU 或内存
  • 临时提高批量任务的 CPU 配额,跑完再调回原值
  • 调整重启策略:把 always 改成 unless-stopped,避免手工停止后被自动拉起
  • 给入口脚本可能无限 fork 的容器加 Pids 限制,防 fork 炸弹

常用命令

常用命令
docker update --memory 1g --memory-swap 1g --cpus 2 myapp   # 设内存与 CPU 上限
docker update --memory 512m --memory-swap 512m myapp        # 收紧内存并同时限制 swap
docker update --pids-limit 200 myapp                        # 限制进程与线程总数
docker update --restart unless-stopped myapp                # 改重启策略
docker inspect -f '{{.HostConfig.Memory}} {{.HostConfig.NanoCpus}}' myapp   # 验证
docker stats --no-stream myapp                              # 对比实际用量与限制

inspect 字段读法

字段含义异常表现
HostConfig.Memory内存上限(字节)为 0 表示无限制,容器可逐步吃满宿主内存
HostConfig.MemorySwap内存加 swap 的总上限取值小于 Memory 时 docker 会直接拒绝参数
HostConfig.NanoCpusCPU 配额,单位为纳核--cpus 2 对应 2000000000,为 0 表示不限
HostConfig.PidsLimit进程数上限0 或 -1 表示不限制,fork 风暴时无法兜底
HostConfig.RestartPolicy重启策略与预期不符通常是改错了对象(容器还是服务)
热改限额适合应急止血:内存泄漏先限内存,CPU 抢占先限配额,把影响面控制住;根因仍要通过发版、修复或扩容解决,长期靠限制运行会让业务在高峰期更容易失败。
内存上限调小不会立即杀死容器,只有在内存压力触到上限时才触发 OOMKilled(退出码 137)。排查时看 docker inspect 的 State.OOMKilled 与内核日志,而不是只看应用日志。

易错点

  • --memory 调到低于应用真实需求,容器反复 OOMKilled 并以 137 退出,表现为「服务莫名重启」
  • 以为端口映射、挂载、环境变量也能 update,遇到报错才发现只能重建容器,停机窗口没有提前预留
  • 只改运行中的容器而忘了改 compose 或编排声明,下次重新部署限制被还原,问题原样复发
  • 只设 --memory 不设 --memory-swap,swap 使用不受预期约束,内存压力被 swap 掩盖成性能下降

数据来源与参考

  • Docker Docs:docker update

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌