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

Jenkins机器能否在Pipeline脚本中与Docker机器实现通信?

可行性判定

该需求完全可实现。你已经验证过Jenkins机器可以正常访问第一阶段创建的Linux宿主,只要补充Docker远程访问的相关配置即可完成通信。

对应实现步骤
  • 第一阶段「build docker」配置
    • 启动Docker服务后,修改Docker daemon配置,开放远程访问端口:测试环境可使用2375非加密端口,生产环境必须使用2376端口并配置TLS证书,避免未授权访问风险
    • 放行宿主防火墙的对应端口,规则限定仅允许Jenkins机器的IP访问该端口
    • 阶段结束后将Docker宿主的IP存入Jenkins流水线全局变量,供第二阶段调用
  • 第二阶段Jenkins侧配置
    • 提前在Jenkins机器上安装对应版本的Docker客户端
    • 执行命令前配置环境变量:export DOCKER_HOST=tcp://<第一阶段Docker宿主IP>:<对应端口>,如果是TLS加密访问还要额外配置DOCKER_TLS_VERIFY=1和证书存放路径
    • 执行docker info验证连接,返回正常信息即可进行后续的镜像构建、容器操作等需求
Docker场景下更通用的流水线方案

如果不需要跨机器调度,还有两种维护成本更低的常用方案可选:

  • 直接在Jenkins的agent节点预装Docker环境,所有构建、镜像打包、部署操作都在同一个agent节点完成,不需要跨阶段切换机器,流水线配置逻辑更简单
  • 使用Jenkins官方Docker插件,在流水线中直接声明需要的容器作为执行环境,插件会自动完成容器的创建、挂载、销毁全生命周期管理,不需要你手动维护Docker机器的调度
安全提示
  • 禁止在公网环境开放Docker 2375非加密端口,该端口无任何验证机制,极易被恶意扫描入侵
  • 如果Docker机器仅在流水线运行期间使用,建议新增最后一个清理阶段,执行完所有操作后销毁对应资源,避免不必要的成本浪费

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 04:57:00