最近使用Docker在部署應(yīng)用的過程中,發(fā)現(xiàn)在使用docker stop命令停止容器時(shí),會出現(xiàn)停止慢的情況。
經(jīng)過一番研究,發(fā)現(xiàn)原因是Docker默認(rèn)使用了graceful stop方式來停止容器。即向容器中的進(jìn)程發(fā)送SIGTERM信號,等待進(jìn)程自行退出,再發(fā)送SIGKILL信號強(qiáng)制關(guān)閉容器。因此,如果容器中的進(jìn)程響應(yīng)SIGTERM信號時(shí)間較長,就會導(dǎo)致docker stop命令執(zhí)行時(shí)間較長。
Docker默認(rèn)使用graceful stop方式停止容器 SIGTERM信號 ->等待進(jìn)程自行退出 ->SIGKILL信號強(qiáng)制關(guān)閉容器
解決方法也很簡單,也就是不使用graceful stop方式來停止容器。可以通過在docker stop命令后添加--time參數(shù)指定超時(shí)時(shí)間,超時(shí)后自動(dòng)發(fā)送SIGKILL信號強(qiáng)制關(guān)閉容器。
docker stop --time=30 容器名
在這里,建議使用適當(dāng)?shù)某瑫r(shí)時(shí)間,避免在容器內(nèi)部執(zhí)行清理操作時(shí),出現(xiàn)數(shù)據(jù)丟失等情況。
總之,docker stop慢的問題其實(shí)很好解決,只要不使用graceful stop方式就可以了。
上一篇if vue