默認(rèn)情況下,當(dāng)docker守護(hù)程序終止時(shí),它將關(guān)閉正在運(yùn)行的容器。您可以配置守護(hù)程序,以便在守護(hù)程序不可用時(shí)容器仍在運(yùn)行。此功能稱為實(shí)時(shí)還原。實(shí)時(shí)還原選項(xiàng)有助于減少由于守護(hù)程序崩潰,計(jì)劃內(nèi)停機(jī)或升級(jí)而導(dǎo)致的容器停機(jī)時(shí)間。
啟用實(shí)時(shí)還原
兩種方法可以啟用實(shí)時(shí)還原設(shè)置,以在守護(hù)程序不可用時(shí)使容器保持活動(dòng)狀態(tài)。請(qǐng)僅執(zhí)行以下一項(xiàng)。
將配置添加到守護(hù)程序配置文件。在Linux上,此默認(rèn)為/etc/docker/daemon.json。在泊塢窗Mac版桌面或碼頭Windows版桌面,選擇從任務(wù)欄泊塢窗圖標(biāo),然后單擊 首選項(xiàng)- >守護(hù)程序- >高級(jí)。
使用以下JSON啟用live-restore。
{
“l(fā)ive-restore”: true
}
重新啟動(dòng)Docker守護(hù)程序。在Linux上,您可以通過重新加載Docker守護(hù)程序來避免重啟(并避免容器出現(xiàn)任何停機(jī))。如果使用 systemd,則使用命令systemctl reload docker。否則,SIGHUP向該dockerd過程發(fā)送 信號(hào)。
如果愿意,可以dockerd使用該–live-restore標(biāo)志手動(dòng)啟動(dòng)該過程 。不建議使用此方法,因?yàn)樗鼪]有設(shè)置systemd啟動(dòng)Docker進(jìn)程時(shí)將使用的環(huán)境或其他進(jìn)程管理器。這可能會(huì)導(dǎo)致意外的行為。
在升級(jí)過程中現(xiàn)場(chǎng)恢復(fù)
實(shí)時(shí)還原允許您使容器在Docker守護(hù)程序更新之間保持運(yùn)行,但是僅在安裝修補(bǔ)程序版本(YY.MM.x)時(shí)才支持實(shí)時(shí)還原,而對(duì)于主要(YY.MM)守護(hù)程序升級(jí)則不支持。
如果您在升級(jí)過程中跳過發(fā)行版,則守護(hù)程序可能無(wú)法恢復(fù)其與容器的連接。如果守護(hù)程序無(wú)法恢復(fù)連接,則它無(wú)法管理正在運(yùn)行的容器,您必須手動(dòng)停止它們。
來源:TechWeb