2

聊一聊容器暂停退出 - 编程玩家

 2 years ago
source link: https://www.cnblogs.com/Erik_Xu/p/16311721.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

聊一聊容器暂停退出

最近在写 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
182190-20220526082404022-477615618.png

2. 查看容器进程

docker top nginx-kill
docker top nginx-stop
docker top nginx-pause
182190-20220526082519723-1937999929.png

3. 查看资源使用

docker stats nginx-kill nginx-stop nginx-pause

182190-20220526082549184-1821724386.png

4. 打开事件监听

docker events

182190-20220526082612371-48804359.png

1. docker kill

docker kill nginx-kill
docker top nginx-kill
docker stats nginx-kill
docker ps -a
182190-20220526082658805-2036235755.png

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

相关事件:kill -> die

182190-20220526082735166-493356999.png

2. docker stop

docker stop nginx-stop
docker top nginx-stop
docker stats nginx-stop
docker ps -a
182190-20220526082850930-757525446.png

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

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

182190-20220526082920160-1943975327.png

3. docker pause

docker pause nginx-pause
docker top nginx-pause
docker stats nginx-pause
docker ps -a
182190-20220526082948022-1187117657.png

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

相关事件:pause

182190-20220526083014053-2096802481.png

指令 docker kill docker stop docker 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
以上就是本文希望分享的内容,如果大家有什么问题,欢迎在文章或者公众号 - 跬步之巅留言交流。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK