You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins容器运行Docker时GLIBC版本缺失问题的排查与解决

Jenkins容器内运行Docker出现GLIBC版本错误的成因与解决方法

问题成因

你直接将宿主机的docker二进制文件挂载到Jenkins容器内,但宿主机Docker依赖的GLIBC版本(2.32/2.34)高于Jenkins容器基础镜像(旧版Debian/Ubuntu)自带的GLIBC版本。由于GLIBC的版本兼容性限制,高版本依赖的二进制文件无法在低版本GLIBC环境中运行,因此触发该错误。

可行解决方法

  • 安装容器内兼容的Docker客户端
    不要挂载宿主机的Docker二进制,直接在Jenkins容器内安装适配容器系统的Docker客户端:

    # 进入容器后执行
    apt-get update && apt-get install -y docker.io
    

    该方式安装的客户端会自动适配容器内的GLIBC版本,同时通过已挂载的/var/run/docker.sock与宿主机Docker daemon通信。

  • 使用高版本基础的Jenkins镜像
    更换为基于更新系统的Jenkins镜像(如jenkins/jenkins:latest-jdk17,基于Debian 12),这类镜像自带的GLIBC版本更高,能满足宿主机Docker二进制的依赖要求。重新创建容器时可沿用原挂载命令。

  • 匹配Docker API版本安装客户端
    如果需要和宿主机Docker版本严格适配,先在宿主机执行docker -v查看版本(如Docker version 24.0.6),然后在容器内安装对应大版本的Docker客户端:

    # 以24.0版本为例
    apt-get update && apt-get install -y apt-transport-https ca-certificates curl gnupg2 software-properties-common
    curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
    apt-get update && apt-get install -y docker-ce-cli=5:24.0.*-1~debian.*
    
  • 采用Docker-in-Docker(DinD)模式
    若需要独立的Docker环境,可使用带DinD的Jenkins镜像,或者在容器内启动Docker daemon。不过该方式会占用更多资源,且需注意权限配置。

内容的提问来源于stack exchange,提问作者Yaser Hesham

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 08:31:01