Jenkins Windows节点Docker登录报错:指定登录会话不存在
解决Windows Jenkins中Docker登录凭证存储报错的方案
方案1:禁用凭证持久化(推荐)
在Docker登录命令中添加--no-store参数,避免将凭证写入Windows凭据管理器,仅在当前会话生效,适配Jenkins一次性构建场景:
echo "$Env:DOCKER_PASSWORD" | docker login --username "$Env:DOCKER_USERNAME" --password-stdin --no-store jedox.azurecr.io
方案2:调整Jenkins服务运行账户权限
如果需要持久化存储凭证,需确保Jenkins服务使用拥有本地管理员权限的账户运行(而非默认的Local System账户):
- 打开Windows服务管理器,找到Jenkins服务
- 右键点击「属性」,切换到「登录」选项卡
- 选择「此账户」,输入具备本地管理员权限的账户信息
- 重启Jenkins服务
方案3:指定Docker凭证存储为文件(临时应急)
通过设置DOCKER_CONFIG环境变量,让Docker将凭证存储到指定目录的文件中,绕过系统凭据管理器:
# 定义Docker配置目录,确保Jenkins有读写权限 $Env:DOCKER_CONFIG="C:\Jenkins\docker_config" # 创建目录(如果不存在) New-Item -ItemType Directory -Path $Env:DOCKER_CONFIG -Force # 执行登录命令 echo "$Env:DOCKER_PASSWORD" | docker login --username "$Env:DOCKER_USERNAME" --password-stdin jedox.azurecr.io
注意:构建完成后建议删除该目录下的config.json文件,避免凭证泄露。
内容的提问来源于stack exchange,提问作者StarkesWeb
相关产品推荐
相关产品推荐

