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

在Jenkins中通过Kubernetes插件运行指定Docker命令求助

解决Jenkins Kubernetes插件中执行Docker容器操作的配置方案

以下是调整后的Jenkins Pipeline配置,能够实现你需要的Docker操作逻辑:

agent {
    kubernetes {
      label "Docker"
      inheritFrom 'rootless'
      // 定义完整的Pod配置,包含dind和buildimg容器
      yaml '''
apiVersion: v1
kind: Pod
spec:
  containers:
  - name: dind
    image: docker:dind
    securityContext:
      privileged: true
    volumeMounts:
    - name: docker-graph-storage
      mountPath: /var/lib/docker
  - name: buildimg
    image: "<docker_image_name>"
    env:
    - name: DOCKER_HOST
      value: tcp://localhost:2376
    - name: DOCKER_TLS_CERTDIR
      value: "/certs"
    volumeMounts:
    - name: docker-certs-client
      mountPath: /certs/client
  volumes:
  - name: docker-graph-storage
    emptyDir: {}
  - name: docker-certs-client
    emptyDir: {}
'''
    }
  }
  options {
    timeout(time: 180, unit: 'MINUTES')
    buildDiscarder(logRotator(daysToKeepStr: '30', artifactDaysToKeepStr: '30'))
    timestamps()
  }
  environment {
    IMG_SRC="somesrc.com"
    IMG_NAME="someimg.qcow2"
    // 替换成你的目标镜像名
    TARGET_DOCKER_IMG="<docker_img_name>"
  }
  stages{
    stage('Run and Exec Docker Container') {
      steps {
        container('buildimg') {
          sh'''
# 运行特权容器并捕获容器ID
CONTAINER_ID=$(docker run -d --privileged ${TARGET_DOCKER_IMG} /usr/sbin/init)
echo "启动的容器ID: ${CONTAINER_ID}"

# 等待容器初始化完成(可选,根据镜像启动速度调整)
sleep 10

# 执行容器内操作,这里以bash执行命令为例
docker exec ${CONTAINER_ID} bash -c "
# 在这里写你需要在容器内执行的命令,比如
echo '容器内执行的操作'
ls -l
"

# 可选:操作完成后停止容器
docker stop ${CONTAINER_ID}
'''
        }
      }
    }
  }
}

关键调整说明

  • Pod配置优化:明确定义dind容器的特权模式与存储卷,这是Docker-in-Docker运行的核心要求,避免因权限或存储问题导致Docker无法启动。
  • Docker连接配置:给buildimg容器设置DOCKER_HOST环境变量,让它能直接调用dind容器内的Docker守护进程。
  • 容器ID动态捕获:用$(docker run ...)命令直接获取容器ID,替代硬编码的容器ID,保证每次运行的正确性。
  • 非交互式执行:去掉docker run和docker exec中的-it参数(Jenkins Pipeline是非交互式环境,-it会导致执行失败),如果需要执行bash命令,改用bash -c包裹脚本内容。

内容的提问来源于stack exchange,提问作者Sharon John D'Souza

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 00:21:26