docker update命令可实时调整运行中容器的重启策略、CPU、内存、IO、进程数等运行时参数,但不支持修改环境变量、端口映射、挂载卷等静态配置;所有变更仅当前实例有效,重启后恢复初始设置。

运行中的容器,重启策略和资源限制都可以用 docker update 实时调整,无需停止或重建容器。但要注意:它只改运行时参数,不碰环境变量、端口、挂载卷等静态配置。
修改重启策略
重启策略决定容器异常退出后是否自动重启,docker update 可立即更新该设置(但不会立刻重启当前容器,只影响下一次退出行为):
- --restart=always:无论退出状态码如何,都重启(适合长期服务)
- --restart=on-failure:5:仅非零退出码时重启,最多 5 次(防无限崩溃循环)
- --restart=unless-stopped:除手动 stop 外,其他退出都重启(Docker 守护进程重启后也恢复)
示例:docker update --restart=on-failure:3 nginx-proxy
调整 CPU 和内存限制
这些是高频调整项,生效快、风险可控(内存下调需谨慎):
- --cpus=2.0:限制最多使用 2 个逻辑 CPU 核(推荐,cgroups v2 下效果稳定)
- -m 1g 或 --memory=1g:硬性内存上限;超限可能触发 OOM Killer 杀进程
- --memory-reservation=512m:软限制,内存紧张时系统优先回收这部分
- --memory-swap=2g:内存 + swap 总上限(必须配合 -m 使用)
示例:docker update --cpus=1.5 -m 768m --memory-reservation=256m app-backend
其他可调的运行时参数
IO、进程数、设备带宽等也可动态控制,适合突发负载或资源争抢场景:
- --pids-limit=200:限制容器内最大进程/线程数,防 fork bomb
- --blkio-weight=600:块设备 IO 权重(范围 10–1000),值越高越优先获得 IO 资源
- --device-read-bps /dev/sda:4mb:限制从某块盘读取速率
- --device-write-iops /dev/sdb:300:限制向某块盘写入 IOPS
操作注意事项
执行前请确认容器处于运行中(docker ps 可见),并注意以下关键点:
- 内存下调有风险:若容器已占用超新限制,会立刻被内核 OOM Killer 终止
- CPU 调整一般安全,但 --cpus 设得太小可能导致响应延迟升高
- 修改后可用 docker inspect 容器名 查看 HostConfig 中的最新配置
- 所有变更仅对当前运行实例有效;容器重启或重部署后将恢复初始配置(如需永久生效,请更新 docker run 命令或 docker-compose.yml)


















