时间:2021-05-02
Docker version 1.13.1
问题过程
某环境一个mysql容器无法被stop or kill or rm
sudo docker ps | grep mysql 查看该容器
? 1 7844250860f8 mysql:5.7.22 "/.r/r docker-entr..." 41 minutes ago Up 8 minutes r-dlrel-mysql-1-66df8f33使用docker stop / docker kill / docker rm -f 等命令处理后,容器立马自动重启
立即查看容器,运行时间为:Up Less than a second,说明容器立马启动了
? 1 7844250860f8 mysql:5.7.22 "/.r/r docker-entr..." 42 minutes ago Up Less than a second r-dlrel-mysql-1-66df8f33kill该容器对应的物理进程,依然自动重启
获取物理进程方式:1.docker inspect中的 State.Pid字段为物理进程ID; 2.ps 命令
查看容器restart policy,策略为no,即不会自动重启
如果需要更新运行中容器的restart策略,可以使用该命令:docker update –restart=no my-container
? 1 2 3 4 "RestartPolicy": { "Name": "no", "MaximumRetryCount": 0 },程序员之间神奇的问题解决方式
你是否出现过这种场景:
这次我属于第一种,刚把问题说完,立马想起:擦,是容器编排工具Rancher在做调度,容器挂了之后会自动重启。
登录rancher一看,果然如此,”乌龙”问题。虽这次不是问题,但Docker确实有无法stop的问题,资料也很多。
拓展阅读: Docker Restart Policy
解决过程中了解了很多Docker Restart Policy知识和Bug,这篇文章写的简单易懂:Ensuring Containers Are Always Running with Docker's Restart Policy
这里仅做下记录,学习下Docker的四种Restart Policy。
no
no是默认策略,在任何情况下都不会restart容器
on-failure
on-failure表示如果容器 exit code异常时将restart,如果容器exit code正常将不做任何处理。
? 1 2 sudo docker run -d --name testing_restarts --restart on-failure:5 testing_restarts 85ff2f096bac9965a9b8cffbb73c1642bf7b64a2173bbd145961231861b95819on-failure[:max-retries],max-retries表示最大重启次数。
on-failure的好处是:如果容器以正常exit code终止,将不会 restart
always
无论容器exit code是什么,都会自动restart。列举几个场景:
以上情况always侧露都会restart容器,但是如果是 on-failure和no策略,机器被重启之后容器将无法restart。
unless-stopped
unless-stopped 和 always 基本一样,只有一个场景 unless-stopped有点特殊:
如果容器正常stopped,然后机器重启或docker服务重启,这种情况下容器将不会被restart
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/myle69/article/details/80834848
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
前言今天有开发同学给我反馈说有一个容器服务无法stop、rm(dockerrm-f)和kill等操作,也就是说这个容器服务无法终止~操作步骤(1)执行删除命令无
1、问题描述安装在docker容器里面的storage一直处于退出状态,导致文件无法存储。2、解决方案查看docker中安装的容器dockerps-a尝试启动容
直接解决方法具体可参考StackOverflow链接docker运行时存在守护程序,所以我们需要停止docker内运行的容器和docker服务。具体可参考官网给
解决Windows10下无法对docker容器进行端口访问(端口映射的问题)在Windows10系统服务器中安装了docker和docker-compose并尝
docker获取容器获取的时间出错问题解决:在使用Docker部署网站的时候,无意间发现容器里面的时间竟然是美国时间,被雷到了,不过解决办法也很简单,有两种办法