docker 清除脚本
适用于 Debian/Ubuntu 系统
- 新建/编辑文件
nano uninstall_docker.sh; - 赋权执行
chmod +x uninstall_docker.sh; - 执行脚本
./uninstall_docker.sh;
#!/bin/bash
set -e
echo "=== 🧹 Docker 卸载工具启动 ==="
# 检查是否安装了 Docker
if ! command -v docker >/dev/null 2>&1; then
echo "✅ 当前系统未检测到 Docker,无需卸载。"
exit 0
fi
echo "⚠️ 检测到系统已安装 Docker:$(docker --version)"
read -p "是否继续彻底卸载 Docker 及所有相关数据?(y/N): " confirm
if [[ "$confirm" != "y" && "$confirm" != "Y" ]]; then
echo "❎ 操作取消,未做任何修改。"
exit 0
fi
# 停止 Docker 服务
echo "→ 停止 Docker 服务..."
systemctl stop docker || true
systemctl stop containerd || true
# 卸载所有相关软件包
echo "→ 卸载 Docker 软件包..."
apt-get purge -y \
docker-ce \
docker-ce-cli \
containerd.io \
docker-buildx-plugin \
docker-compose-plugin \
docker-ce-rootless-extras || true
# 自动清理依赖
apt-get autoremove -y
# 删除 APT 源和 GPG 密钥
echo "→ 删除软件源和 GPG 密钥..."
rm -f /etc/apt/sources.list.d/docker.list
rm -f /usr/share/keyrings/docker-ce.gpg
# 删除配置、网络、socket、日志等
echo "→ 删除配置文件和服务目录..."
rm -rf /etc/docker
rm -rf /var/lib/containerd
rm -rf /var/run/docker*
rm -rf /run/docker*
rm -rf /lib/systemd/system/docker.service
rm -rf /lib/systemd/system/containerd.service
rm -rf /var/log/docker
# 提示是否删除数据目录
echo "⚠️ /var/lib/docker 包含镜像、容器、卷等数据。"
read -p "是否删除 /var/lib/docker?此操作不可恢复!(y/N): " deldata
if [[ "$deldata" == "y" || "$deldata" == "Y" ]]; then
echo "→ 删除 /var/lib/docker ..."
rm -rf /var/lib/docker
else
echo "→ 保留 /var/lib/docker 数据目录。"
fi
echo "✅ Docker 已彻底卸载完成。"