在使用 Docker 的过程中,有时候可能会遇到 Docker 卸载不干净的问题,这通常是因为某些文件或目录没有被完全删除,导致后续重新安装时出现错误。下面是一些步骤和建议,帮助你彻底卸载 Docker 并确保可以重新安装:
1. 停止 Docker 服务
首先,确保 Docker 服务已经停止。
sudo systemctl stop docker
2. 删除docker及安装时自动安装的所有包
使用 apt-get(Debian/Ubuntu)或 yum(CentOS/RHEL)等包管理器来卸载 Docker 包。
对于 Debian/Ubuntu 系统:
sudo apt-get autoremove docker docker-ce docker-engine docker.io containerd runc
sudo apt-get purge docker docker-engine docker.io containerd runc
对于 CentOS/RHEL 系统:
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
3. 删除 Docker 相关的文件和目录
Docker 可能还留下了一些文件和目录,需要手动删除。
sudo rm -rf /etc/systemd/system/docker.service.d
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
sudo rm -rf /etc/docker
sudo rm -rf /etc/containerd
sudo rm -rf /run/containerd
sudo rm -rf /run/docker
4. 删除用户和组(如果需要)
如果之前创建了特定的 Docker 用户或组,也可以选择删除它们。
sudo groupdel docker
sudo deluser docker
5. 清理包缓存(可选)
清理包管理器的缓存,以避免未来安装时出现问题。
对于 Debian/Ubuntu 系统:
sudo apt-get clean
对于 CentOS/RHEL 系统:
sudo yum clean all
6. 重新安装 Docker
我们可以访问Docker的官方网站来根据自己的系统获取Docker
https://docs.docker.com/engine/install/
在确保所有相关组件都已删除后,你可以重新安装 Docker。按照官方安装指南进行操作。
本例 Debian/Ubuntu 系统,添加 Docker 的官方 GPG 密钥:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
将存储库添加到 Apt 源
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
安装最新版本的Docker
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
上面的安装如果有部分失败则执行以下命令后重新输入一次基本不会再报错:
apt-get update
最后拉取 hello-world 并运行:
sudo docker pull hello-world
sudo docker run hello-world
如果拉取镜像慢的话,可以将/etc/docker/daemon.json中的内容修改为:
{
"registry-mirrors": [
"https://2a6bf1988cb6428c877f723ec7530dbc.mirror.swr.myhuaweicloud.com",
"https://docker.m.daocloud.io",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com",
"https://your_preferred_mirror",
"https://dockerhub.icu",
"https://docker.registry.cyou",
"https://docker-cf.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://docker.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://mirror.aliyuncs.com",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.iscas.ac.cn",
"https://docker.rainbond.cc"
]
}
重新加载配置文件:
systemctl daemon-reload
systemctl restart docker
7. 启动 Docker 服务并检查状态
安装完成后,启动 Docker 服务并检查其状态。
sudo systemctl start docker
sudo systemctl status docker
通过以上步骤,你应该能够彻底卸载 Docker 并重新安装一个干净的环境。如果在重新安装过程中遇到问题,检查官方文档或查看错误日志以获取更多信息。