我的场景:安装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