如何使用live restore让Docker守护进程中断期间保持Docker运行

docker守护进程默认终止时,它会关闭正在运行的docker容器。从Docker Engine 1.12开始,你可以配置守护进程,使容器即使; V N z A .在守护进程变得不可用的情况下也能保持运行~ x d Y
这个功能被命名为是live restore。live restore选项W | , ] 有助于j / 0 M 1 # B减少由于守护进程崩溃、计划中的中断或升级导致的容d F | - @ 器停机。
有两种方法可7 b m C , `以启用live restore
将配置添加到守护进程配置文件中。在Linux上,默认为/etc/docker/daemon.json。
使用以下JSON来启用live-restore。
{
"livD { N 0e-restoreE ( [ g , ": true
}
您可以立即重新启动docker? Y 0 Q m b守护程序了。如果你使用systemd,那么使用systemctl reload docker命令。x T w E V U x
你也可以使用--live-restore标志手动启动dockerd进程。
如果守护程序长时间关闭,正在运行的容器可能会填满该守护程序通常读取的FIFO日志。完整的日志会阻止容器记录更多数据。默认缓m a ~ | J冲区大小为64K。如果缓冲区已满,则必须重新启动DocR v { M | | ! v ker守护程序以刷新它们。
E _ K * 2 q !LinR l ,ux上,您可以通过更改/proc/sys/fs/pipe- t wmax-size来修改内核的缓冲区大小。
此live restore选项仅适用于独立容器,不适用于群集服务。群集服` 7 E务由群集管理器管理。如果群集管理器不可用,则群集服务将继续在工作程序节点上运行,但是只9 ^ B `有在有足够的群集管理器可用于维持仲 7 9 q Y _ K t裁之前,才能对群集服务进行管理。
live restore支持在Docker守护程序升级期间保持容器运行s O N ] 3 P,尽管这仅限于补丁程序发行版,并且不支持次要或主要守护程序升U - L 3级。
如果您在升级过程中跳过发行版,则守护程序可能无法恢复其与容$ C D R f &器的连接。如果守护程序无法恢复连接,则它无法管理正在运行的容器,您必须手G & | ~ 5 V动停止它们。
仅当守护程序} v l选项(例如网桥IP地址和! L G v q图形驱动程序)未更改时,live restore选项才可用于还原容器。如果这些守护程序级配置选项中的任何一个已更改,则live restore可能无法正常工作,您可能需要手动停止容器。
A5互联htl , k 8 I ( &tps://www.a5idc.net/