[转载]Docker容器无法被stop or kill问题
来源:
问题过程
某环境一个mysql容器无法被stop or kill or rm
sudo docker ps | grep mysql 查看该容器
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,说明容器立马启动了
7844250860f8 mysql:5.7.22 "/.r/r docker-entr..." 42 minutes ago Up Less than a second r-dlrel-mysql-1-66df8f33
kill该容器对应的物理进程,依然自动重启
> 获取物理进程方式:1.docker inspect中的 State.Pid字段为物理进程ID; 2.ps 命令
查看容器restart policy,策略为no,即不会自动重启
- no,默认策略,在容器退出时不重启容器
- on-failure,在容器非正常退出时(退出状态非0),才会重启容器
- on-failure:3,在容器非正常退出时重启容器,最多重启3次
- always,在容器退出时总是重启容器
- unless-stopped,在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器
> 如果需要更新运行中容器的restart策略,可以使用该命令:docker update --restart=no my-container
"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正常将不做任何处理。
sudo docker run -d --name testing_restarts --restart on-failure:5 testing_restarts
85ff2f096bac9965a9b8cffbb73c1642bf7b64a2173bbd145961231861b95819
on-failure[:max-retries],max-retries表示最大重启次数。
on-failure的好处是:如果容器以正常exit code终止,将不会 restart
always
无论容器exit code是什么,都会自动restart。列举几个场景:
- 容器以非正常状态码终止(如应用内存不足导致终止)
- 容器被正常 stopped,然后机器重启或Docker服务重启
- 容器在宕机在正常运行,然后重启机器或Docker服务重启
以上情况always侧露都会restart容器,但是如果是 on-failure和no策略,机器被重启之后容器将无法restart。
unless-stopped
unless-stopped 和 always 基本一样,只有一个场景 unless-stopped有点特殊:
如果容器正常stopped,然后机器重启或docker服务重启,这种情况下容器将不会被restart
[转载]Docker容器无法被stop or kill问题的更多相关文章
- [CoreOS 转载] CoreOS实践指南(七):Docker容器管理服务
转载:http://www.csdn.net/article/2015-02-11/2823925 摘要:当Docker还名不见经传的时候,CoreOS创始人Alex就预见了这个项目的价值,并将其做为 ...
- Docker容器技术
Docker介绍 什么是容器 Linux容器是与系统其他部分隔离开的一系列进程,从另一个系统镜像运行,并由该镜像提供支持进程所需的全部文件. 容器镜像包含了应用的所有依赖项,因而在从开发到测试再到生产 ...
- 进入正在运行的 docker 容器(docker container)
在使用 docker 容器的时候,我们总会想看看容器内部长什么样子:我们使用 docker exec 命令可以满足我们的期望: ➜ compose docker exec --help Usage: ...
- Ubuntu编译安装HAprox+Keepalived+MySQL负载高可用架构(结合Docker容器配置)
系统环境:Ubuntu16.04(Docker容器) 架构环境: Keepalived/HAproxy MASTER: 172.17.0.4 Keepalived/HAproxy BACKUP: 17 ...
- Docker容器网络篇
Docker容器网络篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Docker的网络模型概述 如上图所示,Docker有四种网络模型: 封闭式网络(Closed conta ...
- 三文搞懂学会Docker容器技术(中)
接着上面一篇:三文搞懂学会Docker容器技术(上) 6,Docker容器 6.1 创建并启动容器 docker run [OPTIONS] IMAGE [COMMAND] [ARG...] --na ...
- docker容器化python服务部署(supervisor-gunicorn-flask)
docker容器化python服务部署(supervisor-gunicorn-flask) 本文系作者原创,转载请注明出处: https://www.cnblogs.com/further-furt ...
- 在docker容器中安装和使用,linux版的powershell
powershell 传教士 原创文章.始于 2016-09-18 ,2016-10-27修改powershell docker官网.允许转载,但必须保留名字和出处,否则追究法律责任 1 在任意版本的 ...
- [转载]Docker的安装配置及使用详解
简介 官网:http://www.docker.com/,点击get started进入下载,目前三个系统的docker容器都有,Windows版需要win10系统,我的是win7系统一开始用的 ...
随机推荐
- java CRC16 算法
代码摘自:https://www.cnblogs.com/lujiannt/p/9246256.html 1.CRC16算法 public class CRC16Util { /** * 计算CRC1 ...
- webpack压缩图片之项目资源优化
webpack打包时,会根据webpack.config.js 中url-loader中设置的limit大小来对图片进行处理,小于limit的图片转化成base64格式,其余的不做操作.对于比较大的图 ...
- 05 JPAUtil工具类
public final class JPAUtil { // JPA的实体管理器工厂:相当于Hibernate的SessionFactory private static EntityManager ...
- Ajax上传数据和上传文件(三种方式)
Ajax向后端发送数据可以有三种方式:原生Ajax方式,jQuery Ajax方式,iframe+form 方式(伪造Ajax方式) <!DOCTYPE html> <html la ...
- R中character和factor的as.integer的不同
记录一个容易犯错的地方. 用chr标记的0~1变量可以变为整数0和1, 而用因子factor标记的变量转换为整数时总是从1开始. 如果不注意区分就会发生令自己困惑的错误.
- lesson01
题目: Action3: 统计全班的成绩 班里有5名同学,现在需要你用numpy来统计下这些人在语文.英语.数学中的平均成绩.最小成绩.最大成绩.方差.标准差.然后把这些人的总成绩排序,得出名次进行 ...
- html5 cavans的小应用
1.canvas鼠标画线,canvas小方块移动,canvas小方块旋转并缩放 <!doctype html> <html> <head> <meta cha ...
- dos下 批处理 用 pause 可以在最后暂停 查看结果信息 build.bat
dos下 批处理 用 pause 可以在最后暂停 查看结果信息
- Java 并发容器(转)
转自:https://blog.ouyangsihai.cn/%2Fjava-gao-bing-fa-zhi-bing-fa-rong-qi-xiang-jie-cong-ru-men-dao-cha ...
- 创建Sphinx + GitHub + ReadtheDocs托管文档
最新博客链接 "Tsanfer's Blog" 创建Sphinx + GitHub + ReadtheDocs托管文档 Readthedocs在线电子书链接