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

Jenkins流水线执行docker build报错:docker not found 求助

问题原因

Jenkins容器内部默认未安装Docker客户端,也未关联宿主机的Docker守护进程,导致执行docker build命令时提示docker: not found。你之前安装的Docker插件、配置的Docker Agent是用于让Jenkins以Docker容器作为构建代理,和在Jenkins主容器内直接执行Docker命令并非同一逻辑。

解决方法

方案1:修改Jenkins启动命令,挂载宿主机Docker资源

先停止并删除现有Jenkins容器:

docker stop jenkins-my
docker rm jenkins-my

用新命令启动Jenkins,挂载宿主机的Docker套接字和二进制文件:

docker run -p 8080:8080 -p 50000:50000 -d \
  -v $(pwd)/jenkins-file:/var/jenkins_home \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v $(which docker):/usr/bin/docker \
  --name jenkins-my --privileged jenkins/jenkins:lts

挂载项说明:

  • /var/run/docker.sock:Docker守护进程的核心套接字,让Jenkins容器能调用宿主机的Docker服务
  • $(which docker):宿主机Docker命令的路径,挂载到容器内后,无需在容器里单独安装Docker客户端

重启后重新运行流水线即可正常执行docker build命令。

方案2:利用Jenkins Docker Agent执行构建步骤

若不想修改Jenkins主容器配置,可通过已配置的Docker Cloud,让构建步骤在预装Docker客户端的代理容器中执行。修改Jenkinsfile如下:

pipeline {
    agent none

    stages {
        stage("Docker Build") {
            agent {
                docker {
                    image 'jenkins/inbound-agent:latest-jdk11'
                    args '-v /var/run/docker.sock:/var/run/docker.sock'
                }
            }
            steps {
                echo "building the application..... "
                sh 'docker build -t content-service:1.0 .'
            }
        }

        stage("test") {
            agent any
            steps {
                echo "testing the application....."
            }
        }

        stage("deploy") {
            agent any
            steps {
                echo "deploying the application....."
            }
        }
    }
}

配置说明:

  • agent none:取消流水线默认使用Jenkins主容器执行的设置
  • docker { image 'jenkins/inbound-agent:latest-jdk11' }:指定使用包含Jenkins代理环境的镜像作为构建代理,也可选择自带Docker客户端的镜像(如docker:dind,但需开启特权模式)
  • args '-v /var/run/docker.sock:/var/run/docker.sock':挂载宿主机Docker套接字,让代理容器能调用宿主机Docker服务

注意事项

  • 挂载docker.sock需注意权限,--privileged参数已基本处理权限问题
  • 方案2需确保Jenkins的Configure Clouds中已正确配置Docker Cloud,能正常拉取指定代理镜像

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 20:45:34