尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Docker 1.24进程僵死杀不死完整处理流程

Docker 1.24进程僵死杀不死完整处理流程 Docker 进程僵死杀不死完整处理流程现象systemctl stop docker卡住kill‑9杀完又自动起来是 docker.socket 套接字自动拉起 dockerd 进程所以杀完又复活。 你目标彻底干掉 docker26卸载装 docker‑19.03 给 k8s1.18 使用。步骤 1同时关闭 docker.service 和 docker.socket关键点只停 docker 没用bash#停止服务套接字单元socket会自动重启dockerd必须一起关 systemctl stop docker.service docker.socket systemctl disable docker.service docker.socket #重置systemd失败计数 systemctl reset-failed docker systemctl daemon-reload步骤 2强制杀死所有 docker 相关进程bash#查找dockerd、containerd全部进程 ps -ef | grep -E dockerd|containerd #批量强制杀掉所有docker家族进程 pkill -9 dockerd pkill -9 containerd pkill -9 containerd-shim⚠️ 如果进程状态是D不可中断睡眠磁盘 IO 阻塞kill‑9也杀不掉这种情况只能服务器重启才能释放进程。校验执行完再次ps -ef | grep dockerd不出现 dockerd 进程才算成功。步骤 3删除 socket 锁文件、数据目录解除文件锁bashrm -rf /var/run/docker.sock rm -rf /var/run/docker.pid rm -rf /etc/docker rm -rf /var/lib/docker rm -rf /var/lib/containerd步骤 4强制卸载 docker 包如果 yum remove 卡住跳过预卸载脚本先看已经安装哪些 docker 包bashyum list installed | grep docker普通卸载bashyum remove -y docker-ce docker-ce-cli containerd.io docker-ce-rootless-extras如果卸载卡死、preun 脚本挂住强制卸载跳过脚本对付僵死进程场景51CTO...bashrpm -e --nodeps --noscripts docker-ce rpm -e --nodeps --noscripts docker-ce-cli rpm -e --nodeps --noscripts containerd.io执行完docker --version提示 command not found代表卸载干净。两种结局✅上面操作之后 docker 彻底消失 → 直接安装 docker‑19.03.15bashyum install -y yum-utils yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum install -y docker-ce-19.03.15 docker-ce-cli-19.03.15 containerd.io #配置镜像加速器 mkdir -p /etc/docker cat /etc/docker/daemon.json EOF { registry-mirrors: [https://docker.mirrors.ustc.edu.cn] } EOF systemctl enable --now docker docker --version❗执行完全部命令ps 依旧看到 dockerd 进程D 状态 IO 僵死内核层面卡住任何 kill 无效只能执行机器重启reboot重启后 docker 不会再起来再执行安装 docker‑19.03。重要提醒CentOS7.9 K8s1.18绝对不能使用 docker24内置 dockershim 已经移除你之前 CRI 报错根源就在这里。重装 docker‑19.03 完成之后再做确认/etc/hosts里面写好 masterIP 和主机名 k8s‑master01执行全套 kubeadm 残留清理bashkubeadm reset -f rm -rf /etc/cni/net.d/* rm -rf $HOME/.kube iptables -F iptables -t nat -F iptables -t mangle -F iptables -X ipvsadm --clear使用 v1beta2 的 yaml 执行kubeadm init如果你做完还是有问题可以把下面命令输出贴给我bashps -ef | grep dockerd systemctl status docker补充备选思路不想折腾 docker 版本你也可以放弃 docker直接用 containerd 作为 k8s1.18 的 CRI 运行时避开 docker 版本坑。如果你想我可以给你一套 centos7.9 containerd 部署 k8s1.18 的操作。
返回列表