所以当我根据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*
如果它是符号链接,您将看到一个->
指向其实际二进制文件的箭头,并且它的文件权限将以l
in 开头lrwxrwxrwx
或以为其设置的任何权限开头。
删除符号链接和原始二进制文件。如果不是符号链接,则可以使用以下命令直接删除二进制文件:
rm /usr/bin/docker*
首先,使用 ls 运行上述命令,以确保您没有删除任何其他文件。rm 命令参数之间的任何额外空格都会导致删除不需要的文件。因此,请确保在运行之前进行验证。
注意:我在 ls 和 rm 命令中的 docker 末尾添加了 * 来定位所有 docker 二进制文件(包括其守护进程、代理、compose 和其他)。
不仅如此,您还必须删除所有负责自动启动 docker 守护进程的服务文件。完成清理后,您就可以从 centos 官方仓库安装最新的 docker 引擎了。