通过缓存模式的私有Docker注册表返回“无效授权凭证”

我正在使用
official Docker registry image,并将其配置为拉式缓存.

我的客户可以登录并推送/拉取本地图像,例如:

docker login -u username -p secret docker.example.local:5000
docker pull docker.example.local:5000/myImage

我已将客户端配置为使用Docker注册表服务器作为代理:

root@server:/# cat /etc/docker/daemon.json
  {
     "registry-mirrors": ["https://docker.example.local:5000"]
  }

但是当我的客户试图拉出注册表服务器上尚未存在的图像时,我收到错误.拉动命令示例:

docker pull alpine

然后,注册表服务器在其日志文件中响应此消息:

error authorizing context: basic authentication challenge for realm \"Registry Realm\": invalid authorization credential

我遇到了this SO post建议在前面放置一个Nginx代理服务器,但这似乎是一个黑客,如果可能的话,我更喜欢一些更干净的方法.

其他人如何在拉入缓存模式下设置他们的注册表服务器 – 您是否找到了比在注册表服务器前设置Nginx代理更好的解决方案?

最佳答案 您使用了错误的registry-server-name名称.

不要使用https://前缀

#>docker login -u username -p secret docker.example.local:5000
点赞