默认情况下,当 Docker 守护进程终止时,正在运行的容器将被关闭。您可以配置守护进程,使在守护进程不可用时,容器仍然保持活动状态。这一功能被称为实时还原(live restore)。实时还原有助于减少因守护进程崩溃、计划停机或升级所造成的容器停机时间。
启用实时还原有两种方法,请仅选择其中一项执行。
方法一:将配置添加到守护进程的配置文件。在 Linux 系统上,默认路径为 /etc/docker/daemon.json。在 Docker Desktop for Mac 或 Docker Desktop for Windows 上,请通过托盘的 Docker 图标打开偏好设置,进入“守护进程”页面的“高级”选项。
使用以下 JSON 启用 live-restore。
{ “live-restore”: true }
重启 Docker 守护进程。在 Linux 上,可以通过重新加载守护进程以实现无停机的应用(避免容器停机)。如果使用 systemd,请执行 systemctl reload docker。否则,可以向 dockerd 进程发送 SIGHUP 信号。
如果愿意,您也可以使用 –live-restore 标志手动启动 dockerd 进程。但不建议采用此方法,因为它不会设置在 systemd 启动 Docker 进程时所需的环境变量或其他进程管理器的配置,可能导致不可预期的行为。
实时还原允许在 Docker 守护进程更新之间保持容器运行,但仅在安装补丁版本(YY.MM.x)时支持实时还原;对于主要版本升级(YY.MM)的守护进程更新则不支持。
如果在升级过程中跳过发行版,守护进程可能无法重新连接到容器。如果守护进程无法重新连接,它将无法管理正在运行的容器,您必须手动停止它们。
