You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Docker nginx容器中重启nginx服务且不停止容器

Docker Nginx 配置热重载方案(不停止容器)

Docker 容器的生命周期与 PID 1 进程绑定,你使用service nginx restart时会终止作为 PID 1 的 nginx 主进程,因此容器会自动退出。使用 nginx 自带的热重载能力即可在不停止容器的前提下加载新配置,操作如下:

第一步:校验配置合法性

重载前必须先验证配置语法正确性,避免重载失败影响服务:

  • 宿主机直接执行(无需进入容器):
    docker exec nginx nginx -t
    
  • 已进入容器bash交互界面时直接执行:
    nginx -t
    

返回test is successful即代表配置无语法错误,可以执行重载。

第二步:执行热重载

方式1:直接调用nginx重载命令(最常用)

  • 宿主机执行:
    docker exec nginx nginx -s reload
    
  • 容器内执行:
    nginx -s reload
    

方式2:发送SIGHUP信号触发重载

直接向容器发送SIGHUP信号,效果和上述命令完全一致:

docker kill -s SIGHUP nginx

原理说明

热重载过程中nginx主进程会保持运行,验证新配置无误后启动新的worker进程处理新请求,旧worker进程处理完存量请求后自动退出,全程服务无中断,PID1的nginx主进程始终存活,因此容器不会停止。


内容的提问来源于stack exchange,提问作者Shuzheng

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 14:48:04