![4c688227694276e7f9467e3f4a6a6124.png](https://img-blog.csdnimg.cn/img_convert/4c688227694276e7f9467e3f4a6a6124.png)
容器何时销毁
现在很多服务采用容器化运行,一个容器中运行一个服务,因为容器的创建和启动都是在秒级,所以这种容器化的部署方式被称之为轻量化部署。
1. 容器中服务进程终止
容器的创建和运行是因某个服务进程而生的,因此 当服务进程结束时,容器也会终止。
例如:创建并运行一个Java容器,容器中运行某个jar文件作为服务。当容器中的这个Java进程终止时,容器也会销毁。
服务进程的关闭结束或异常终止,一般可以通过查看服务的日志,分析得出原因。
2. 容器发生OOM Killer
OOM是操作系统为避免内存超出使用而存在的一种保护机制。
容器在运行时,默认不进行内存限制,即容器将最大限度使用系统内存。
因此,不限定容器使用内存很可能在未知的时刻发生OOM
限制容器内存
-m参数
docker run -d -p 8081:80 -m 512m nginx
限制kill容器进程--oom-kill-disable
docker run -d -p --oom-kill-disable -p 8081:80 nginx
Java容器通过设置JAVA_OPTS全局变量限制JVM内存
docker run -d -e JAVA_OPTS="-Xms512m -Xmx512m" java
动态修改内存限制
docker 1.10以后支持docker update命令,动态修改运行中的容器内存大小
docker update -m 512m --memory-swap -1 [container-id]
以上就是本次分享。有什么想法,快留言吧:)