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

Windows环境下Jenkins内Docker连接失败及@temp文件疑问

Jenkins Docker连接失败与@temp文件问题排查

一、Docker与Jenkins连接失败(Windows环境)

你用Docker运行Jenkins,直接指定本地docker.exe路径无法建立连接,得用容器共享Docker服务的方式解决:

  • 挂载Docker Socket到Jenkins容器
    重启Jenkins容器时添加挂载参数,根据Docker后端类型选择对应命令:
    • 基于WSL2后端的Docker:
      docker run -d -p 8080:8080 -p 50000:50000 -v /var/run/docker.sock:/var/run/docker.sock -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts
      
    • Windows原生Docker:
      docker run -d -p 8080:8080 -p 50000:50000 -v //./pipe/docker_engine://./pipe/docker_engine -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts
      
  • 给Jenkins容器用户添加Docker权限
    进入Jenkins容器执行命令,让jenkins用户拥有访问Docker服务的权限:
    docker exec -it <你的Jenkins容器ID> usermod -aG docker jenkins
    
    执行完成后重启Jenkins容器。
  • 临时测试用TCP连接(不建议生产环境)
    打开Docker Desktop设置,开启「Expose daemon on tcp://localhost:2375 without TLS」,然后在Jenkins全局工具配置中,将Docker URL设置为tcp://host.docker.internal:2375。

二、项目目录中@temp文件的由来

  • 这类文件是Jenkins流水线执行时的临时工作文件:
    • 当流水线拉取代码、执行构建步骤时,会在工作空间自动生成@temp/@tmp目录,用于存储临时缓存数据、脚本执行的中间输出、构建上下文文件等。
    • 如果你的流水线使用了容器代理(比如agent { docker { ... } }),Jenkins会在代理容器内创建这些临时目录,用来挂载本地资源或传递构建所需的临时数据。
  • 处理建议:
    • 无需手动删除,Jenkins在流水线结束后通常会自动清理;如果需要强制清理,可以在流水线脚本末尾添加post步骤:
      post {
        always {
          deleteDir() // 清理整个工作空间的临时文件
        }
      }
      
    • 这些文件不会影响构建结果,仅占临时磁盘空间,除非磁盘不足,否则无需额外处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 09:52:15