适用场景

适用于通过下载二进制包手动安装的 Docker,不适用于 apt、yum 等包管理器安装的情况。


第一步:停止 Docker 服务和进程

# 停止 dockerd 进程
pkill -9 dockerd

# 停止 containerd 进程
pkill -9 containerd

# 停止 runc 进程
pkill -9 runc

# 等待进程退出
sleep 2

# 验证无残留进程
ps aux | grep -E 'docker|containerd|runc' | grep -v grep

第二步:删除 Docker 二进制文件

# 查看 docker 相关文件
ls /usr/local/bin/docker*

# 删除所有 docker 相关二进制
rm -f /usr/local/bin/docker
rm -f /usr/local/bin/dockerd
rm -f /usr/local/bin/containerd
rm -f /usr/local/bin/containerd-shim-runc-v2
rm -f /usr/local/bin/runc
rm -f /usr/local/bin/ctr
rm -f /usr/local/bin/docker-init
rm -f /usr/local/bin/docker-proxy

# 验证删除
ls /usr/local/bin/docker* 2>/dev/null || echo "二进制文件已删除"

第三步:删除 Docker 数据和配置

# 删除数据目录
rm -rf /var/lib/docker

# 删除配置文件
rm -rf /etc/docker

# 删除 socket 文件
rm -f /var/run/docker.sock

# 删除 systemd 服务文件(如果存在)
rm -f /etc/systemd/system/docker.service
rm -f /etc/systemd/system/docker.socket

# 重新加载 systemd
systemctl daemon-reload

第四步:清理残留(可选)

# 清理网络规则(如果创建了 bridge 或 iptables 规则)
iptables -F -t nat
iptables -X DOCKER

# 检查并删除 docker 用户组(如果有)
groupdel docker 2>/dev/null

# 清理环境变量(如果有配置)
# 检查 ~/.bashrc ~/.profile /etc/profile 中的 DOCKER 相关配置

验证卸载

# 确认 docker 命令不可用
which docker 2>/dev/null && echo "Docker 仍存在" || echo "Docker 已卸载"

# 确认无残留进程
ps aux | grep docker

快速执行脚本

#!/bin/bash

echo "开始卸载 Docker..."

# 停止进程
echo "1. 停止 Docker 进程..."
pkill -9 dockerd 2>/dev/null
pkill -9 containerd 2>/dev/null
pkill -9 runc 2>/dev/null
sleep 2

# 删除二进制
echo "2. 删除 Docker 二进制文件..."
rm -f /usr/local/bin/docker* 2>/dev/null

# 删除数据和配置
echo "3. 删除 Docker 数据和配置..."
rm -rf /var/lib/docker 2>/dev/null
rm -rf /etc/docker 2>/dev/null
rm -f /var/run/docker.sock 2>/dev/null
rm -f /etc/systemd/system/docker.service 2>/dev/null
rm -f /etc/systemd/system/docker.socket 2>/dev/null
systemctl daemon-reload 2>/dev/null

# 验证
echo "4. 验证卸载..."
if which docker &>/dev/null; then
    echo "❌ 卸载失败,Docker 仍存在"
    exit 1
else
    echo "✅ Docker 卸载完成"
fi

注意:此手册适用于通过官方二进制包安装的 Docker。如果是通过包管理器安装(apt/yum/dnf),请使用对应的包管理命令卸载。

更多推荐