GitLab Runner搭配Docker报错:客户端版本1.18低于最低要求1.24
解决GitLab Runner与Docker API版本不兼容问题
问题根源
你的GitLab Runner版本为11.2.0,这是2018年发布的老旧版本,它内置的Docker客户端API版本固定为1.18,和你当前使用的Docker 26.1.2(API 1.45)完全不匹配。报错里的1.18版本来自Runner内部的客户端库,和宿主机器上的Docker客户端/服务端版本无关。
解决步骤
1. 升级GitLab Runner(推荐方案)
这是彻底解决问题的唯一办法,老旧版本的Runner不仅存在API兼容问题,还可能有安全漏洞:
- 停止Runner服务:
sudo gitlab-runner stop - 卸载旧版本:
sudo apt remove gitlab-runner - 安装适配Ubuntu 20.04的最新稳定版Runner(建议选择15.x及以上版本,官方支持与Docker 20+版本兼容)
- 重新注册Runner(复用之前的GitLab地址、token、执行器配置等信息):
sudo gitlab-runner register - 启动Runner服务:
sudo gitlab-runner start
2. 临时绕过方案(仅限测试环境)
如果暂时无法升级Runner,可以通过让Runner调用宿主机器的Docker客户端来规避内部库的版本限制,但存在安全风险:
- 修改Runner配置文件
/etc/gitlab-runner/config.toml,在[runners.docker]区块添加:docker_host = "tcp://localhost:2375" - 修改Docker服务配置
/etc/docker/daemon.json,开启TCP端口(注意:未做安全限制的TCP端口易被攻击):{ "hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2375"] } - 重启Docker服务:
sudo systemctl restart docker
3. 验证修复
- 执行测试作业,确认不再出现API版本过低的报错
- 用以下命令确认版本信息:
gitlab-runner --version docker version
内容的提问来源于stack exchange,提问作者YggY
相关产品推荐
相关产品推荐

