我的场景:安装rancher过程中,提示报错:
FATA[0001] Unsupported Docker version found [20.10.5], supported versions are [1.13.x 17.03.x 17.06.x 17.09.x 18.06.x 18.09.x 19.03.x]
根据提示,我去查了下我的docker版本是docker20.10版本
[root@localhost deploy]# docker version Client: Docker Engine - Community Version: 20.10.5 API version: 1.41 Go version: go1.13.15 Git commit: 55c4c88 Built: Tue Mar 2 20:33:55 2021 OS/Arch: linux/amd64 Context: default Experimental: true Server: Docker Engine - Community Engine: Version: 20.10.5 API version: 1.41 (minimum version 1.12) Go version: go1.13.15 Git commit: 363e9a8 Built: Tue Mar 2 20:32:17 2021 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.4.3 GitCommit: 269548fa27e0089a8b8278fc4fc781d7f65a939b runc: Version: 1.0.0-rc92 GitCommit: ff819c7e9184c13b7c2607fe6c30ae19403a7aff docker-init: Version: 0.19.0 GitCommit: de40ad0
决定降级操作
语法:yum downgrade --setopt=obsoletes=0 -y docker-ce-${version} docker-ce-selinux-${version}
注:${version}指定要降级的版本。
[root@localhost deploy]# yum downgrade --setopt=obsoletes=0 -y docker-ce-19.03.13-3.el7 docker-ce-cli-19.03.13-3.el7 containerd.io
安装完成后,查看版本
[root@localhost deploy]# docker version Client: Docker Engine - Community Version: 19.03.13 API version: 1.40 Go version: go1.13.15 Git commit: 4484c46d9d Built: Wed Sep 16 17:03:45 2020 OS/Arch: linux/amd64 Experimental: false Server: Docker Engine - Community Engine: Version: 19.03.13 API version: 1.40 (minimum version 1.12) Go version: go1.13.15 Git commit: 4484c46d9d Built: Wed Sep 16 17:02:21 2020 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.3.9 GitCommit: ea765aba0d05254012b0b9e595e995c09186427f runc: Version: 1.0.0-rc10 GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd docker-init: Version: 0.18.0 GitCommit: fec3683
已经降级成功
可能会出现镜像文件或者容器丢失情况,这是因为降级之前,以前的docker服务可能被指定了文件存放路径,接下来把降级后的启动服务文件修改到原来的文件路径即可。
找到之前存放的docker镜像文件,我的环境在/opt/data/docker,请以自己环境为准。
操作如下命令更改镜像存储位置,重新读取
[root@localhost deploy]# sed -i "s#-H fd:#-g /opt/data/docker -H fd:#g" /lib/systemd/system/docker.service [root@localhost deploy]# systemctl daemon-reload [root@localhost deploy]# systemctl restart docker
再查看镜像文件已读取到
[root@localhost deploy]# docker images