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

Jenkins构建Docker镜像提示无法连接Docker daemon问题咨询

问题核心原因

该报错本质是Jenkins构建任务的执行进程无法和节点上的Docker守护进程通信,要么是Docker服务未启动,要么是进程没有/var/run/docker.sock套接字文件的访问权限。

可落地的解决方案
  • 方案1:在Jenkinsfile中显式启动Docker服务
    如果你的构建节点/agent支持service或systemctl命令,在构建镜像前增加启动Docker的步骤即可:
pipeline {
    agent any
    stages {
        stage('初始化Docker环境') {
            steps {
                // 适配不同发行版的启动命令
                sh 'service docker start || systemctl start docker'
                // 等待服务完全启动
                sh 'sleep 3'
                // 验证服务可用性
                sh 'docker info'
            }
        }
        stage('构建Docker镜像') {
            steps {
                sh 'docker build -t 你的镜像标签 .'
            }
        }
    }
}

如果使用的是Docker-in-Docker类型的构建agent,需要确保agent启动时已经添加了--privileged特权参数,否则Docker服务无法正常启动。

  • 方案2:调整套接字文件权限
    如果Docker服务实际已经运行,只是Jenkins执行用户没有访问权限,可以在构建步骤中临时修改权限:
sh 'chmod 666 /var/run/docker.sock'

注意:该配置仅适合测试环境使用,生产环境建议将Jenkins运行用户加入docker用户组,避免权限过度开放带来的安全风险。

  • 方案3:使用官方Docker Pipeline插件
    提前在Jenkins插件市场安装Docker Pipeline插件后,直接使用插件封装的镜像构建能力,插件会自动适配Docker daemon的连接逻辑,无需手动处理底层通信问题:
pipeline {
    agent any
    stages {
        stage('构建镜像') {
            steps {
                script {
                    docker.build("你的镜像标签")
                }
            }
        }
    }
}
特殊场景说明

如果你的Jenkins使用Kubernetes动态agent执行构建,需要确保agent pod配置了宿主机/var/run/docker.sock文件的挂载,或者单独配置了Docker-in-Docker侧车容器提供Docker服务。

内容的提问来源于stack exchange,提问作者Mitesh Upadhyay

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 10:45:11