聊一聊容器暂停退出

博客 动态
0 189
优雅殿下
优雅殿下 2022-05-26 08:59:41
悬赏:0 积分 收藏

聊一聊容器暂停退出

背景介绍 

最近在写 docker 相关教程,过程中发现容器暂停退出竟然有 docker kill、docker stop 和 docker pause 三种方式,今天就来看下三者间的区别。

 

辅助指令

  • docker top - 查看容器进程

  • docker event - 查看容器相关事件

  • docker stats - 查看容器资源使用率

 

准备工作

1. 启动容器

docker run --name nginx-kill -d nginxdocker run --name nginx-stop -d nginxdocker run --name nginx-pause -d nginx

 

2. 查看容器进程

docker top nginx-killdocker top nginx-stopdocker top nginx-pause

 

3. 查看资源使用

docker stats nginx-kill nginx-stop nginx-pause

 

4. 打开事件监听

docker events

 

开始分析

1. docker kill

docker kill nginx-killdocker top nginx-killdocker stats nginx-killdocker ps -a

docker top 指令报错,CPU 和内存使用率为 0,容器状态为 Exited,退出码为 137。

 

相关事件:kill -> die

 

2. docker stop

docker stop nginx-stopdocker top nginx-stopdocker stats nginx-stopdocker ps -a

docker top 指令报错,CPU 和内存使用率为 0,容器状态为 Exited,退出码为 0。

 

相关事件:kill -> die -> stop

 

3. docker pause

docker pause nginx-pausedocker top nginx-pausedocker stats nginx-pausedocker ps -a

docker top 指令正常,CPU 使用率为 0,内存使用率大于0,容器状态为 Pause。

 

相关事件:pause

 

结果分析

指令docker killdocker stopdocker pause
docker ps -a

容器暴力退出
未保存的信息会丢失
退出码 137

容器正常退出
无消息丢失
退出码 0

容器暂停
docker top报错报错正常显示进程
docker stats

CPU 使用率 = 0
内存使用率 = 0

CPU 使用率 = 0
内存使用率 = 0

CPU 使用率 = 0
内存使用率 > 0

docker events

kill - signal=9
die

kill - signal=3
die
stop

pause
how to restart

docker start
docker restart

docker start
docker restart

docker unpause

 

参考总结

以上就是本文希望分享的内容,如果大家有什么问题,欢迎在文章或者公众号 - 跬步之巅留言交流。
posted @ 2022-05-26 08:43 编程玩家 阅读(8) 评论(0) 编辑 收藏 举报
回帖
    优雅殿下

    优雅殿下 (王者 段位)

    2018 积分 (2)粉丝 (47)源码

    小小码农,大大世界

     

    温馨提示

    亦奇源码

    最新会员