文章目录
- cpu和内存的限制
- 内存限制的部分参数
- 容器的不同状态
- docker images 的分层
- docker registry
- 制作镜像
cpu和内存的限制
默认情况下,容器没有资源限制,可以使用主机内核调度程序允许的尽可能多的
给定资源,Docker 提供了控制容器可以限制容器使用多少内存或 CPU 的方法,
设置 docker run 命令的运行时配置标志
对于 Linux 主机,如果没有足够的内容来执行其他重要的系统任务,将会抛出
OOM (Out of Memory Exception,内存溢出、内存泄漏、内存异常), 随后系
统会开始杀死进程以释放内存,凡是运行在宿主机的进程都有可能被 kill,包括
Dockerd 和其它的应用程序,如果重要的系统进程被 Kill,会导致和该进程相关
的服务全部宕机
/proc/PID/oom_score_adj #范围为-1000 到 1000,值越高越容易被宿主机
kill 掉,如果将该值设置为-1000,则进程永远不会被宿主机 kernel kill。
/proc/PID/oom_adj #范围为-17 到+15,取值越高越容易被干掉,如果是-17,
则表示不能被 kill,该设置参数的存在是为了和旧版本的 Linux 内核兼容。
/proc/PID/oom_score #这个值是系统综合进程的内存消耗量、CPU 时间
(utime + stime)、存活时间(uptime - start time)和 oom_adj 计算出的进程得
分,消耗内存越多得分越高,越容易被宿主机 kernel 强制杀死。
内存限制的部分参数
-m or --memory #容器可以使用的最大内存量,如果设置此选项,则允许的
最小存值为 4m (4 兆字节)。
--memory-swap #容器可以使用的交换分区大小,必须要在设置了物理内存
限制的前提才能设置交换分区的限制
容器的不同状态
仔细看图
docker images 的分层
docker registry
制作镜像
参考资料: 马哥