Docker容器状态的形成过程
Docker容器状态的形成过程
下图中是docker运⾏的⼏种状态,带有颜⾊的圆形块,是都可以在docker ps中查看到的状态
容器的创建和运⾏
docker create 创建容器但不会运⾏(None—create—created)
docker start 启动⼀个已经创建的容器(created—start—running)
docker run 创建并启动容器(None—created—start—running)
容器的运⾏和停⽌
docker start 启动⼀个停⽌中的容器(stopped—start—running)
docker stop 停⽌⼀个运⾏中的容器(running—die—stop—exited)
docker kill 杀死⼀个运⾏中的容器(running—die—kill—exited)
容器的重启
docker restart 重启⼀个运⾏中的容器(running—die—start—running)
容器的暂停
docker pause 暂停⼀个运⾏中的容器(running—pause—paused)
docker unpause 解除容器的暂停(paused—unpause—running)
容器进程退出或内存溢出
进程退出:Container process exited
内存溢出:killed by out of memory
图中红⾊⽅框圈出的这两项,都会经过die然后出现⼀个restart Policy,是否重新启动服务的⼀个策略,它由你在运⾏容器时,是否指定了--restart参数,来决定。在之前我们也⽤到过,如:
docker run -it --name test --restart always centos /bin/bash
–restart
判断是否重启的标准就是硬件原因和内存原因
always:表⽰不管遇到什么错误都进⾏重新启动容器
never:不管遇到什么错误都不重启
on-failure:容器状态以⾮0状态码退出时重新启动容器,on-failure:10,表⽰重启失败的次数,连续10次还是启动不了就不再重新启动
unless-stopped,⽆论退出码时什么,始终重新启动容器,不过当daemon启动时,如果容器之前已经为停⽌状态,不要尝试启动它。
exited在每次重启容器之前,不断地增加重启延迟[上⼀次重启的双倍延迟,从100毫秒开始]来防⽌影响服务器。这意味着daemon将等待100ms,然后200 ms, 400, 800, 1600等等,直到超过on-failure限制,或执⾏docker stop或docker rm -f。
如果容器重启成功[容器启动后并运⾏⾄少10秒],然后delay重置为默认的100ms。
你可以使⽤on-failure策略指定docker尝试重启容器的最⼤次数。
容器会根据配置决定是否重启:
systemctl stop docker docker主进程退出(running—Container process exited—die—restart Policy—yes/no—running/exited)
内存溢出(running—killed by out of memory—OMM—die—restart Policy—yes/no—running/exited)
容器的删除
docker rm 删除⼀个创建中或停⽌中的容器(created/stopped—destroy—deleted)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论