admin管理员组

文章数量:1487745

记:docker手动升级

背景

执行 docker build 的时候报错 runtime/cgo: pthread\_create failed: Operation not permitted,定位到可能是docker版本过低导致,遂升级docker

然而公司源最高版本腾讯软件源的最高版本已经是当前版本,而通过docker源安装会默认识别到tlinux的系统版本「2.2」而非centos的「7.2」导致识别不到对应文件,所以只能手动安装

操作

卸载已有docker

停服systemctl stop docker

查看已安装的rpmrpm -qa | grep docker

删除对应的文件yum -y remove {{FileName}}

安装新docker

目标是安装 docker-ce-24.0.5 和 docker-ce-cli-24.0.5

在docker源中找到对应的rpm文件docker-ce-24.0.5-1.el7.x86\_64.rpmdocker-ce-24.0.5-1.el7.x86\_64.rpm的下载连接

下载文件wget {{Link}}

yum手动安装sudo yum install {{FileName}}

此时报错找不到所需的依赖,或者源(腾讯源)中所需依赖版本过低,例:

代码语言:bash复制
Error: Package: 3:docker-ce-24.0.5-1.el7.x86\_64 (/docker-ce-24.0.5-1.el7.x86\_64)

           Requires: docker-ce-rootless-extras

Error: Package: 3:docker-ce-24.0.5-1.el7.x86\_64 (/docker-ce-24.0.5-1.el7.x86\_64)

           Requires: containerd.io >= 1.6.4

           Available: containerd.io-1.2.0-3.el7.x86\_64 (tlinux)

               containerd.io = 1.2.0-3.el7

           Available: containerd.io-1.2.6-3.3.el7.x86\_64 (tlinux)

               containerd.io = 1.2.6-3.3.el7

所以需要再在docker源中查找并下载所需的依赖,我这里总共所需的依赖拢共有:

代码语言:txt复制
docker-compose-plugin

docker-buildx-plugin



docker-ce-rootless-extras

containerd.io

根据docker源中目标docker-ce的版本的创建日期(2023-08-25)来筛选依赖的对应版本,至此总共下载了:

代码语言:txt复制
containerd.io-1.6.22-3.1.el7.x86\_64.rpm

docker-buildx-plugin-0.11.2-1.el7.x86\_64.rpm

docker-ce-24.0.5-1.el7.x86\_64.rpm

docker-ce-cli-24.0.5-1.el7.x86\_64.rpm

docker-ce-rootless-extras-24.0.5-1.el7.x86\_64.rpm

docker-compose-plugin-2.20.2-1.el7.x86\_64.rpm

都跑完后验证docker版本:

代码语言:bash复制
docker -v

Docker version 24.0.5, build ced0996

验证ok,启动docker服务并开启自启动:

代码语言:bash复制
sudo systemctl start docker

sudo systemctl enable docker

完成~

本文标签: 记docker手动升级