如何完全卸载docker

Luk*_*101 141 docker 16.04

我按照此处的卸载说明进行操作。然后我运行了这些命令:

sudo apt-get purge docker-engine
sudo apt-get autoremove --purge docker-engine
rm -rf /var/lib/docker
Run Code Online (Sandbox Code Playgroud)

所以在我完成所有这些之后,我运行了这个命令来查看 docker 文件是否在其他任何地方:

sudo find / -name '*docker*'
Run Code Online (Sandbox Code Playgroud)

我发现了几个 docker 文件仍然存在的地方。

/etc
/sys
/lib
/usr
/usr
/run
/proc
/var
Run Code Online (Sandbox Code Playgroud)

Docker 存在于上述列表中的子文件夹中。如果您愿意,我可以发布每条路径。大约有200个地点。

有没有办法在任何地方完全彻底地删除 docker?

小智 242

要完全卸载 Docker:

第1步

dpkg -l | grep -i docker
Run Code Online (Sandbox Code Playgroud)

要确定您安装了什么软件包:

第2步

sudo apt-get purge -y docker-engine docker docker.io docker-ce docker-ce-cli
sudo apt-get autoremove -y --purge docker-engine docker docker.io docker-ce  
Run Code Online (Sandbox Code Playgroud)

上述命令不会删除主机上的图像、容器、卷或用户创建的配置文件。如果您希望删除所有镜像、容器和卷,请运行以下命令:

sudo rm -rf /var/lib/docker /etc/docker
sudo rm /etc/apparmor.d/docker
sudo groupdel docker
sudo rm -rf /var/run/docker.sock
Run Code Online (Sandbox Code Playgroud)

您已经从系统中完全删除了 Docker。

  • 我还记得删除`/etc/docker`目录和所有内容 (15认同)
  • 就我而言,我还必须使用 `sudo apt-get purge docker-ce-cli`。 (13认同)
  • 另外我不得不删除`/usr/local/bin/docker-compose`。 (12认同)
  • 在此之后,当`$ sudo iptables -L` 时,我会看到与 Docker 相关的条目。 (12认同)
  • 我还必须删除`~/.docker` 目录 (8认同)
  • 可能还有另一种不涉及重启的方法,但重启会从 `sudo iptables -L` 中删除剩余的条目。 (3认同)
  • 首先使用命令“docker system prune -a”删除 docker 的所有数据(图像、卷、网络..),然后删除 docker 包本身是有意义的 (3认同)
  • 我还必须在命令中包含 `containerd.io` (3认同)
  • @Devansh 我跑了 https://serverfault.com/a/200658/184963 但它清除了所有内容..所以请注意..除了 docker 添加的内容外,我没有任何规则设置。 (2认同)

小智 29

如果您使用的是 Ubuntu,我发现如果 docker 安装了snap. 你只需这样做:

sudo snap remove docker
Run Code Online (Sandbox Code Playgroud)

或者,为了避免它为快照创建备份数据,您不再需要:

sudo snap remove --purge docker
Run Code Online (Sandbox Code Playgroud)

并删除所有相关文件,

sudo find / -name "*docker*" -exec `rm -rf` {} +
Run Code Online (Sandbox Code Playgroud)

重要更新

正如评论中提到的,

第二部分是不需要的,只是很危险,至少不要-exec `rm -rf` {} +先运行它

第二部分可以删除属于不同包的文件,例如 /usr/share/vim/vim80/syntax/dockerfile.vim

所以最好先看看要删除的内容。

  • `snap` 命令已经足够好了,但是在删除系统上以 `docker` 为名的所有内容之前要小心! (22认同)
  • 第二部分不是必需的,只是危险的,至少在没有 `-exec \`rm -rf\` {} +` 的情况下运行它。 (5认同)
  • 第二部分可以删除属于不同包的文件,例如 `/usr/share/vim/vim80/syntax/dockerfile.vim` (2认同)
  • 最后一个“find”命令弊大于利。 (2认同)

小智 7

在 Centos 7 上删除 docker 所执行的步骤:

yum list installed|grep -i docker
yum remove containerd.io.x86_64 docker-ce.x86_64 docker-ce-cli.x86_64
groupdel docker
ls /var/lib/docker/
rm -rf  /var/lib/docker /etc/docker
rm -rf  /var/run/docker.sock 
rm -rf  /var/run/docker
find /var -iname "*docker*"
Run Code Online (Sandbox Code Playgroud)

希望这些信息对某人有帮助。

此致,


小智 6

在清除 docker 的同时添加 docker-ce-cli 包

sudo apt-get purge -y docker-engine docker docker.io docker-ce docker-ce-cli
Run Code Online (Sandbox Code Playgroud)


Rag*_*hav 6

从上述帖子和删除 docker 和 docker-compose 的评论中收集的协作列表:

sudo apt-get purge -y docker-engine docker docker.io docker-ce  
sudo apt-get autoremove -y --purge docker-engine docker docker.io docker-ce  
sudo umount /var/lib/docker/
sudo rm -rf /var/lib/docker /etc/docker
sudo rm /etc/apparmor.d/docker
sudo groupdel docker
sudo rm -rf /var/run/docker.sock
sudo rm -rf /usr/bin/docker-compose
Run Code Online (Sandbox Code Playgroud)


小智 6

关于卸载 docker 的更新

在我不得不处理同样的问题之后,只是对此进行更新。

这是关于删除 docker 的官方 docker 文档。


删除最新版本:

卸载 Docker 引擎、CLI 和 Containerd 软件包:

sudo apt-get purge docker-ce docker-ce-cli containerd.io
Run Code Online (Sandbox Code Playgroud)

删除所有映像、容器和卷:

sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
Run Code Online (Sandbox Code Playgroud)

删除以前的版本:

sudo apt-get remove docker docker-engine docker.io containerd runc
Run Code Online (Sandbox Code Playgroud)