首页/云/Docker 容器速查/docker restart 重启容器
基础命令50 条

docker restart 重启容器

等价于对同一容器先 stop 再 start,进程与临时状态重置,但容器配置与可写层保留;-t 控制停止宽限。

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

docker restart 是什么

对同一个容器先停止再启动,等价于顺序执行两个动作。进程与运行时状态被重置,容器配置与可写层保留:挂在卷里的数据、容器内的临时文件都还在。它属于原地重启,适合让应用重新读取挂载进来的配置。

基本信息

语法docker restart [-t 秒] CONTAINER...
参数作用停止阶段的等待时间,超时后强杀
影响服务连接中断,容器内进程全部重启
保留内容容器配置、可写层、挂载数据
不生效内容端口、挂载、环境变量等创建期配置的改动

典型使用场景

  • 配置热更新不便时重启:挂载的配置文件改动后用重启让应用重新读取
  • 临时恢复:应用卡死或连接池异常时重启容器快速恢复服务
  • 证书替换后生效:证书文件更新后重启服务使其重新加载
  • 资源回收:内存缓慢增长的服务在维护窗口重启,暂时缓解压力
  • 发布过程中的单机动作:确认新版镜像已就位后重启相关容器

常用示例

常用示例
docker restart web                       # 默认等待十秒
docker restart -t 30 db                  # 有状态服务给足收敛时间
docker restart $(docker ps -q --filter label=role=worker)   # 批量重启
docker logs --tail 30 web                # 重启后确认输出正常
docker inspect -f '{{.State.Status}}' web # 确认状态稳定

改了配置要不要重启

改动内容操作原因
挂载目录里的配置文件重启容器或按应用方式重载文件在宿主上,容器内路径不变,重启即可读取
镜像内容重新构建镜像并重建容器重启仍用原镜像,改动不会生效
端口与挂载定义删除容器后重建创建期参数无法通过重启修改
环境变量删除容器后重建变量在创建时注入
应用内部开关按应用提供的重载方式避免整容器重启带来的中断

优选顺序与替代手段

  • 优先用应用自身的重载机制,例如配置热加载,减少服务中断
  • 其次用发送信号的方式让进程重新加载配置
  • 再次才是重启容器,代价是连接全部中断
  • 多实例环境逐个滚动重启,避免一次性全部不可用
  • 有状态服务先确认没有正在执行的长任务,再安排重启
重启不会应用编排文件的改动。改完编排文件后要用拉起命令触发容器重建,这是「改了配置重启没用」的常见原因。
反复崩溃的容器重启只是在重复失败。先看日志与退出码找根因,重启次数与状态变化历史是判断的关键依据。

易错点

  • 以为重启能应用配置改动,实际只重启了进程,配置依旧是旧的
  • 有状态服务用默认等待时间重启,进程被强杀导致恢复流程变长
  • 一次性重启全部实例,服务整体不可用,用户直接感知到故障
  • 重启后没有继续观察,服务起来又崩,问题被延后暴露

数据来源与参考

  • Docker 官方 CLI 参考:docker restart(docs.docker.com)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌