如何在Jenkins Pipeline中构建、拉取Docker镜像?具体步骤有哪些?
Jenkins Pipeline 拉取镜像仓库 Docker 镜像操作步骤
前置准备
- 确认 Jenkins 运行节点已经安装 Docker 环境,且 Jenkins 执行用户拥有 Docker 操作权限
- 在 Jenkins 凭据管理中添加镜像仓库的认证凭据,类型选择用户名与密码,记录好自定义的凭据 ID,后续流水线会调用该凭据
- 确认 Jenkins 节点网络可以正常访问目标镜像仓库
操作步骤
步骤1:安装必要插件
确认 Jenkins 已安装 Docker Pipeline 插件,未安装的可以先进入插件管理页面搜索安装后重启 Jenkins。
步骤2:编写流水线代码
两种常用写法可以按需选择:
写法1:使用 Docker 插件封装语法(推荐,更简洁)
pipeline { agent any environment { // 替换为实际镜像仓库地址,例如阿里云镜像服务为 registry.cn-hangzhou.aliyuncs.com REGISTRY_URL = "你的镜像仓库地址" // 替换为前置准备中你创建的镜像仓库凭据ID REGISTRY_CRED_ID = "你的凭据ID" } stages { stage('拉取Docker镜像') { steps { script { docker.withRegistry("https://${REGISTRY_URL}", REGISTRY_CRED_ID) { // 替换为实际镜像完整路径和标签,例如 my-project/my-service:v2.1.0 def targetImage = docker.image("你的镜像完整路径:标签") targetImage.pull() echo "镜像拉取成功,镜像ID为:${targetImage.id}" } } } } } }
写法2:直接调用 Shell 命令(适合需要自定义 Docker 参数的场景)
pipeline { agent any environment { REGISTRY_CRED = credentials("你的凭据ID") } stages { stage('拉取Docker镜像') { steps { sh ''' # 登录镜像仓库 docker login 你的镜像仓库地址 -u ${REGISTRY_CRED_USR} -p ${REGISTRY_CRED_PSW} # 拉取目标镜像 docker pull 你的镜像完整路径:标签 # 操作完成后登出仓库,避免认证信息残留 docker logout 你的镜像仓库地址 ''' } } } }
步骤3:验证结果
执行流水线后查看控制台输出确认无报错,也可以登录对应 Jenkins 节点执行 docker images 命令,确认目标镜像是否存在。
常见注意事项
- 如果使用 HTTP 协议的私有镜像仓库,需要提前在 Jenkins 节点的 Docker daemon 配置中添加
insecure-registries规则,否则会拉取失败 - 镜像仓库的凭据要保证对应账号仅具备镜像拉取权限即可,不要使用管理员权限的账号凭据
- 如果使用多节点构建,需要确认所有执行任务的节点都配置了对应 Docker 环境和仓库访问权限
参考学习资料
- Jenkins Docker Pipeline 插件官方使用文档
- Docker 私有仓库配置官方指南
- Jenkins 凭据管理操作手册
内容的提问来源于stack exchange,提问作者anonymous
相关产品推荐
相关产品推荐

