Docker 重启策略

Docker 是支持自动重启的,可以在 docker run 的时候通过 <font style="color:rgb(37, 41, 51);">--restart</font> 指定重启策略,或者 Docker Compose 配置文件里配置 restart。

有 4 种重启策略:

  • <font style="color:rgb(37, 41, 51);">no</font>: 容器退出不自动重启(默认值)
  • <font style="color:rgb(37, 41, 51);">always</font>:容器退出总是自动重启,甚至重启 docker 引擎(Docker Deamon)后,也会跟着一起重启。除非 docker stop。
  • <font style="color:rgb(37, 41, 51);">on-failure</font>:容器非正常退出才自动重启,还可以指定重启次数,如 on-failure:5
  • <font style="color:rgb(37, 41, 51);">unless-stopped</font>:容器退出总是自动重启,除非 docker stop

重启策略为 always 的容器在 Docker Deamon 重启的时候容器也会重启,而 unless-stopped 的不会。

其实我们用 PM2 也是主要用它进程崩溃的时候重启的功能,而在有了 Docker 之后,用它的必要性就不大了。当然,进程重启的速度肯定是比容器重启的速度快一些的,如果只是 Docker 部署,可以结合 pm2-runtime 来做进程的重启。如果是单个 docker 容器,也可以在内部用 pm2 来做负载均衡

绝大多数情况下,直接用 Docker 跑 node 脚本就行,不需要 PM2。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!