背景介绍 最近在写docker相关教程,过程中发现容器暂停退出竟然有docker kill、docker stop和docker pause三种方式,今天就来看下三者间的区别。 辅助指令 dockertop-查看容器进程 docker event- 查
最近在写 docker 相关教程,过程中发现容器暂停退出竟然有 docker kill、docker stop 和 docker pause 三种方式,今天就来看下三者间的区别。
辅助指令
-
docker top - 查看容器进程
-
docker event - 查看容器相关事件
-
docker stats - 查看容器资源使用率
准备工作
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
开始分析
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。
相关事件:pause
结果分析 指令 docker kill docker stop docker pause docker ps -a
容器暴力退出
未保存的信息会丢失
退出码 137
容器正常退出
无消息丢失
退出码 0
CPU 使用率 = 0
内存使用率 = 0
CPU 使用率 = 0
内存使用率 = 0
CPU 使用率 = 0
内存使用率 > 0
kill - signal=9
die
kill - signal=3
die
stop
docker start
docker restart
docker start
docker restart
参考总结 以上就是本文希望分享的内容,如果大家有什么问题,欢迎在文章或者公众号 - 跬步之巅留言交流。