如何配置Jenkins Agent从Artifactory拉取Docker镜像?
配置Jenkins Agent从Artifactory拉取镜像解决方案
首先明确:你提到的configureClouds>docker_agent_templates>container_settings>Docker_Command路径不是配置镜像拉取源的位置,该参数用于指定容器启动后执行的自定义命令,和镜像拉取环节无关。你可以根据实际场景选择以下两种可行方案:
方案一:Jenkins侧单独配置(无需修改Docker服务端)
适合仅需要Jenkins Agent拉取镜像走私有Artifactory、其他Docker操作保持原有配置的场景,操作步骤如下:
- 进入Jenkins控制台的
Configure Clouds页面,找到对应Docker云配置项下的Docker Agent模板 - 在
Docker Image输入框直接填写Artifactory上的镜像完整路径,格式为<Artifactory域名/镜像仓库地址>/<命名空间>/<镜像名>:<标签>,示例:artifactory.mycorp.com/docker-local/bibinwilson/jenkins-slave:latest - 如果你的Artifactory私有仓库需要鉴权,点击模板配置区的
Add按钮,新增类型为Docker Registry Credentials的凭证,填写Artifactory的账号密码/API密钥后选中该凭证即可 - 保存配置后测试运行任务,Jenkins拉起Agent时会自动从指定的Artifactory地址拉取镜像
方案二:Docker服务端全局配置
适合运行Jenkins Docker代理的宿主机上所有Docker拉取操作都需要走Artifactory源的场景,操作步骤如下:
- 登录到运行Jenkins Docker代理的宿主机节点
- 修改Docker配置文件
/etc/docker/daemon.json,若文件不存在则直接新建,参考配置如下:
{ "registry-mirrors": ["https://<你的Artifactory镜像代理服务地址>"], "insecure-registries": ["<你的Artifactory域名>"] // 上面的insecure-registries配置仅在Artifactory使用HTTP协议或自签名HTTPS证书时需要添加 }
- 执行命令重启Docker服务让配置生效:
systemctl daemon-reload && systemctl restart docker - 配置生效后,该节点所有Docker拉取操作都会优先走Artifactory源,无需修改Jenkins侧的镜像名称配置
注意事项
若两种方案同时配置,Jenkins侧填写的完整镜像路径优先级高于Docker服务端的全局镜像加速配置,可根据实际需求灵活选择。
内容的提问来源于stack exchange,提问作者David Woodman
相关产品推荐
相关产品推荐

