如何在Docker config.json的auth区段使用registry生成的用户令牌拉推镜像
Docker Registry User Token config.json 配置方法
方法一:自动配置(推荐)
直接通过docker login命令自动生成配置,无需手动计算编码或者修改文件:
- 执行命令:
docker login <你的registry地址,带端口需补充端口,例如registry.example.com:5000> - 提示输入用户名时,填写生成User Token绑定的用户名
- 提示输入密码时,直接粘贴你生成的User Token即可
- 登录成功后docker会自动把正确的auth配置写入
~/.docker/config.json(Linux/macOS)或者C:\Users\<你的用户名>\.docker\config.json(Windows)
方法二:手动修改配置文件
如果需要手动编辑config.json,按以下步骤操作:
- 首先计算auth字段的值:auth是
用户名:User Token字符串的Base64编码结果,例如你的用户名为user01,Token为token2024test,就需要对user01:token2024test做Base64编码 - 编码可以直接通过命令行生成:
- Linux/macOS:执行
echo -n "user01:token2024test" | base64 - Windows Powershell:执行
[Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes("user01:token2024test"))
- Linux/macOS:执行
- 把生成的编码结果填入auth字段即可,完整配置示例如下:
{ "auths": { "registry.example.com:5000": { "auth": "dXNlcjAxOnRva2VuMjAyNHRlc3Q=", "email": "your-email@example.com" } } }
常见问题排查
- auths的键不需要加http/https前缀,直接写IP/域名+端口即可
- 如果你用的是未配置HTTPS的私有Registry,需要额外添加insecure-registries配置,否则Docker会默认拒绝请求,示例如下:
{ "auths": { "192.168.3.20:5000": { "auth": "dXNlcjAxOnRva2VuMjAyNHRlc3Q=" } }, "insecure-registries": [ "192.168.3.20:5000" ] }
- 配置完成后可以先执行
docker pull <registry地址>/<镜像名>:<标签>测试拉取是否正常,确认配置生效
内容的提问来源于stack exchange,提问作者user16740706
相关产品推荐
相关产品推荐

