0、开篇词 | 一个态度两个步骤,成为容器实战高手你好,我是李程远,欢迎你加入我的极客时间专栏。从今天开始,我想和你聊一聊,怎么解决容器里的各种问题。 先来介绍一下我自己吧。我毕业于浙江大学计算机系,第一份工作是开发基于Xen的Linux虚拟机,接下来的十几年,我的工作始终围绕着Linux系统。 在...2025-11-02容器实战高手课
1、认识容器:容器的基本操作和实现原理你好,我是程远。作为一名工程师,我猜在过去的几年时间里,你肯定用过或者听人提起过容器(Container)。 说实话,容器这东西一点都不复杂,如果你只是想用的话,那跟着Docker官网的说明,应该十来分钟就能搞定。 简单来说,它就是个小工具,可以把你...2025-11-02容器实战高手课
2、理解进程(1):为什么我在容器中不能kill 1号进程?你好,我是程远。 今天,我们正式进入理解进程的模块。我会通过3讲内容,带你了解容器init进程的特殊之处,还有它需要具备哪些功能,才能保证容器在运行过程中不会出现类似僵尸进程,或者应用程序无法graceful shutdown的问题。 那么通过这一讲...2025-11-02容器实战高手课
3、理解进程(2):为什么我的容器里有这么多僵尸进程?你好,我是程远。今天我们来聊一聊容器里僵尸进程这个问题。 说起僵尸进程,相信你并不陌生。很多面试官经常会问到这个知识点,用来考察候选人的操作系统背景。通过这个问题,可以了解候选人对Linux进程管理和信号处理这些基础知识的理解程度,他的基本功扎不扎实...2025-11-02容器实战高手课
4、理解进程(3):为什么我在容器中的进程被强制杀死了?你好,我是程远。 今天我们来讲容器中init进程的最后一讲,为什么容器中的进程被强制杀死了。理解了这个问题,能够帮助你更好地管理进程,让容器中的进程可以graceful shutdown。 我先给你说说,为什么进程管理中做到这点很重要。在实际生产环境...2025-11-02容器实战高手课
5、容器CPU(1):怎么限制容器的CPU使用?你好,我是程远。从这一讲开始,我们进入容器CPU这个模块。 我在第一讲中给你讲过,容器在Linux系统中最核心的两个概念是Namespace和Cgroups。我们可以通过Cgroups技术限制资源。这个资源可以分为很多类型,比如CPU,Memory,...2025-11-02容器实战高手课
6、容器CPU(2):如何正确地拿到容器CPU的开销?你好,我是程远。今天我们聊一聊,如何正确地拿到容器CPU的开销。 为啥要解决这个问题呢,还是来源于实际工作中的需要。 无论是容器的所有者还是容器平台的管理者,我们想要精准地对运行着众多容器的云平台做监控,快速排查例如应用的处理能力下降,节点负载过高等...2025-11-02容器实战高手课
7、Load Average:加了CPU Cgroup限制,为什么我的容器还是很慢?你好,我是程远。今天我想聊一聊平均负载(Load Average)的话题。 在上一讲中,我们提到过CPU Cgroup可以限制进程的CPU资源使用,但是CPU Cgroup对容器的资源限制是存在盲点的。 什么盲点呢?就是无法通过CPU Cgroup来...2025-11-02容器实战高手课
8、容器内存:我的容器为什么被杀了?你好,我是程远。 从这一讲内容开始,我们进入容器内存这个模块。在使用容器的时候,一定会伴随着Memory Cgroup。而Memory Cgroup给Linux原本就复杂的内存管理带来了新的变化,下面我们就一起来学习这一块内容。 今天这一讲,我们来解...2025-11-02容器实战高手课
9、Page Cache:为什么我的容器内存使用量总是在临界点?你好,我是程远。 上一讲,我们讲了Memory Cgroup是如何控制一个容器的内存的。我们已经知道了,如果容器使用的物理内存超过了Memory Cgroup里的memory.limit_in_bytes值,那么容器中的进程会被OOM Killer杀...2025-11-02容器实战高手课