卸载 docker 命令没有删除 docker

卸载 docker 命令没有删除 docker

所以当我根据https://docs.docker.com/engine/install/centos/运行以下命令

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

打印的信息是

no match for argument docker; 
no match for argument docker-client
...(all the argument listed)

而且,在我运行上述命令后,docker 仍然存在,它没有被卸载。当我运行docker version它时,告诉我 docker 客户端版本是18.03.1-ce

我也尝试过sudo yum remove docker-ce,同样的事情。

我该怎么做才能删除旧的docker?

或者我不用担心,只需安装最新版本?但是通过网站链接,它告诉我先删除现有的docker,然后再安装新的。

我的系统是centos7.4

当我运行时,yum list installed我没有找到任何与docker相关的文件。这是否意味着安装在机器上的docker不受yum管理?而且它不能被yum删除。

答案1

我怀疑 Docker 是在 2018 年使用其静态二进制文件安装在你的机器上的(參考)。

首先,我们将找到您获取版本输出的 docker 路径。为此,请运行以下命令:

whereis docker

如果您的机器上没有安装 whereis 命令,请使用以下命令进行安装:

yum install util-linux

现在,您可以运行 whereis docker 来了解它的路径。我们假设 whereis 为您提供以下输出(它会在您的机器上有所不同)。

docker: /usr/bin/docker

现在,我们将检查这是符号链接还是实际的二进制文件。为此,请列出该文件的长列表。

ls -l /usr/bin/docker*

如果它是符号链接,您将看到一个->指向其实际二进制文件的箭头,并且它的文件权限将以lin 开头lrwxrwxrwx或以为其设置的任何权限开头。

删除符号链接和原始二进制文件。如果不是符号链接,则可以使用以下命令直接删除二进制文件:

rm /usr/bin/docker*

首先,使用 ls 运行上述命令,以确保您没有删除任何其他文件。rm 命令参数之间的任何额外空格都会导致删除不需要的文件。因此,请确保在运行之前进行验证。

注意:我在 ls 和 rm 命令中的 docker 末尾添加了 * 来定位所有 docker 二进制文件(包括其守护进程、代理、compose 和其他)。

不仅如此,您还必须删除所有负责自动启动 docker 守护进程的服务文件。完成清理后,您就可以从 centos 官方仓库安装最新的 docker 引擎了。

相关内容