1、背景介绍
最近在写 docker 相关教程,过程中发现容器暂停退出竟然有 docker kill、docker stop 和 docker pause 三种方式,今天就来分析下三者间的区别。
2、辅助指令
-
docker top - 查看容器进程
-
docker event - 查看容器相关事件
-
docker stats - 查看容器资源使用率
3、准备工作
1. 启动容器
先分别启动三个容器:
docker run --name nginx-kill -d nginx
docker run --name nginx-stop -d nginx
docker run --name nginx-pause -d nginx
2. 查看容器进程
docker top nginx-kill
docker top nginx-stop
docker top nginx-pause
3. 查看资源使用
docker stats nginx-kill nginx-stop nginx-pause
4. 打开事件监听
docker events
4 、开始分析
1. docker kill
docker kill nginx-kill
docker top nginx-kill
docker stats nginx-kill
docker ps -a
docker top 指令报错,CPU 和内存使用率为 0,容器状态为 Exited,退出码为 137。
相关事件:
kill -> die
2. docker stop
docker stop nginx-stop
docker top nginx-stop
docker stats nginx-stop
docker ps -a
docker top 指令报错,CPU 和内存使用率为 0,容器状态为 Exited,退出码为 0。
相关事件:
kill -> die -> stop
3. docker pause
docker pause nginx-pause
docker top nginx-pause
docker stats nginx-pause
docker ps -a
docker top 指令正常,CPU 使用率为 0,内存使用率大于 0,容器状态为 Pause。
相关事件:
5、结果分析
6、参考总结
以上就是本文希望分享的内容,如果大家有什么问题,欢迎留言交流。
在这里还是要推荐我自己建的软件测试学习交流群,群里都是学测试的,如果你想学或者正在学习测试,欢迎你加入,大家都是测试党,不定期分享干货(只有软件测试相关的),包括我自己整理的一份2022最新的Python自动化测试进阶资料和零基础教学,欢迎进阶中和对测试感兴趣的小伙伴加入!