彻底卸载docker engine需按停服务→卸包→清数据→删配置→验证:先systemctl stop docker并确认inactive,再用apt purge或yum remove卸载全部组件,接着rm -rf /var/lib/docker等目录,删除docker组及残留文件,最终验证docker --version报错且无相关目录。
在容器化环境中重新安装 docker engine,核心是先彻底清理旧环境,再按目标平台规范重装。关键不是“覆盖安装”,而是“干净重建”——尤其在 wsl2、云服务器或 ci/cd 构建节点这类轻量、可重置的环境中,这反而是最稳最快的方式。
先彻底卸载旧版本
残留配置或旧二进制文件常导致新安装后 Cannot connect to the Docker daemon 或服务无法启动。务必执行以下步骤:
- 停止正在运行的守护进程:
sudo systemctl stop docker docker.socket(Linux systemd 系统)或sudo service docker stop(SysVinit) - 卸载主程序包:
sudo apt-get remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin(Ubuntu/Debian);sudo yum remove docker-ce docker-ce-cli containerd.io(CentOS/RHEL) - 删除数据和配置:
sudo rm -rf /var/lib/docker /var/lib/containerd /etc/docker(⚠️注意:此操作会清空所有镜像、容器、卷和网络) - 清除残留依赖:
sudo apt-get autoremove && sudo apt-get autoclean(Debian系)
按系统类型选择安装方式
不同环境适配不同安装路径,不建议混用脚本与仓库方式:
-
Ubuntu/Debian(推荐官方仓库):更新源、加 GPG 密钥、添加
docker.list、再apt install docker-ce。稳定、易升级,适合开发机与服务器 -
CentOS/RHEL(用 yum repo):启用
docker-ce-stable源,避免使用已废弃的docker-engine包;确认内核 ≥3.10 且iptables工具可用 -
WSL2 Ubuntu(需绕过 systemd 限制):不依赖
systemctl启动服务;改用sudo dockerd &手动拉起,或通过/etc/wsl.conf配置自动启动脚本 -
CI/CD 构建节点(如 GitHub Runner):优先用一键脚本安装(如
curl -fsSL https://get.docker.com | sh),并指定镜像源(如加--mirror Aliyun)提升拉取速度
验证安装并修复常见问题
安装完成后不要直接跑 docker run hello-world,先分步确认:
- 检查守护进程是否运行:
ps aux | grep dockerd或sudo ss -tlnp | grep :2376 - 确认 socket 可访问:
ls -l /var/run/docker.sock,确保当前用户在docker组里(sudo usermod -aG docker $USER) - 测试客户端连通性:
docker info—— 若提示 “permission denied” 是权限问题;若提示 “connection refused” 则是 dockerd 没起来 - 查看日志定位启动失败原因:
sudo journalctl -u docker.service -n 50 --no-pager(systemd)或sudo dockerd --debug(前台调试模式)
国内环境记得配镜像加速器
否则 docker pull 极慢甚至超时。编辑 /etc/docker/daemon.json(不存在则新建),填入国内可信镜像源:
{
"registry-mirrors": [
"https://hub-mirror.c.163.com",
"https://mirrors.aliyuncs.com"
]
}
保存后重启服务:sudo systemctl daemon-reload && sudo systemctl restart docker











