docker学习笔记-为容器配置重启策略
docker容器配置重啟策略
docker restart policies
docker容器的退出狀態(tài)碼
| 非0 | 表示異常退出(退出狀態(tài)碼采用chroot標(biāo)準(zhǔn)) |
| 125 | Docker守護(hù)進(jìn)程本身的錯(cuò)誤 |
| 126 | 容器啟動(dòng)后,要執(zhí)行的默認(rèn)命令無(wú)法調(diào)用 |
| 127 | 容器啟動(dòng)后,要執(zhí)行的默認(rèn)命令不存在 |
| 其他命令狀態(tài)碼 | 容器啟動(dòng)后正常執(zhí)行命令,退出命令時(shí)該命令的返回狀態(tài)碼作為容器的退出狀態(tài)碼 |
重啟策略配置
在docker run 容器時(shí)可以通過(guò) --restart來(lái)配置該容器的重啟策略,當(dāng)一個(gè)容器配置了重啟策略時(shí),在docker ps中可以看到該容器的狀態(tài)只能為 up 或 restarting
dockers包含的重啟策略:
| no | 默認(rèn)的參數(shù),即不重啟 |
| on-failure[:max-retries] | 在容器非正常退出時(shí)(退出狀態(tài)非0),才會(huì)重啟容器,最大重啟次數(shù)為 max-retries |
| always | 在容器退出時(shí)總是重啟容器,不論退出狀態(tài)碼為多少。 同時(shí)在docker守護(hù)進(jìn)程啟動(dòng),都會(huì)重啟該容器 |
| unless-stopped | 在容器退出時(shí)總是重啟容器,不論退出狀態(tài)碼為多少。但是在docker守護(hù)進(jìn)程啟動(dòng)時(shí)已經(jīng)停止的容器不會(huì)重啟 |
值得注意的是docker在重啟失敗時(shí)會(huì)每次增加一個(gè)延遲,避免無(wú)謂的重啟空占資源,例如某個(gè)容器啟動(dòng)失敗,并設(shè)置了重啟策略,一開(kāi)始延遲100ms,緊接著的每一次重啟失敗,會(huì)延遲2倍的時(shí)間,意味著200ms,400ms,800ms and so on。直到docker進(jìn)程被停止,或者容器被刪除。
當(dāng)該容器重新啟動(dòng)成功時(shí)(restart success,并且正常運(yùn)行了超過(guò)10s),這個(gè)延遲時(shí)間會(huì)被重置為100ms
容器的重啟信息可以在docker inspect中獲取,例如次數(shù)與時(shí)間
$ docker inspect -f "{{ .RestartCount }}" my-container # 2 $ docker inspect -f "{{ .State.StartedAt }}" my-container # 2015-03-04T23:47:07.691840179Z 復(fù)制代碼設(shè)置了重啟策略的容器,不能被clean up ,即docker rm -v my-container
參考:docs.docker.com/engine/refe…
轉(zhuǎn)載于:https://juejin.im/post/5b71ab935188256137188209
總結(jié)
以上是生活随笔為你收集整理的docker学习笔记-为容器配置重启策略的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 生成器和生成器表达式
- 下一篇: UTC/GMT/CST几种常见的时间概述