1.11 之前的情况

Docker的1.11版本是一个大改变,

首先是从单一模块拆分成了4个独立模块,engine、containerd、runc、containerd-shim

containerd-shim代替了原来的1号进程,用来回收孤儿进程

containerd 用来管理容器的生命周期,

runc 用来运行容器

这种改变在2017年的时候使其更贴合容器标准化

为了安装1.11之前的版本,我尝试了几乎4个小时才成功

主要是apt的安装包几乎都已经离线了

想尝试的同学可以按照以下步骤

下载deb离线包,然后使用 ubuntu16来安装,18和20不能兼容

http://archive.ubuntu.com/ubuntu/pool/universe/d/docker.io/docker.io_1.10.3-0ubuntu6_amd64.deb

启动一个ubuntu镜像,让它的1号进程阻塞,参考 自己动手生成一个僵尸进程

杀死 42号进程,这样45号进程的父进程会变成容器的1号进程

接着杀死 45号进程,此时容器的1号进程应该无法回收它

然后我们就得到了一个无法被回收的僵尸进程

Send a Message