docker push image to JFrog: “unknown: Authentication is required“ message

发布于:2025-06-16 ⋅ 阅读:(17) ⋅ 点赞:(0)

docker push image to JFrog: “unknown: Authentication is required” message

在本地部署 JFrog Container Registry (jcr) 后,在 docker login succeed 的情况下,docker pulldocker push 都会失败。拿 docker push 举例,它会不断的 Retry ,最后会出现报错 unknown: Authentication is required

~ $: docker push localhost:8082/docker/ubuntu:20.04
The push refers to repository [localhost:8082/docker/ubuntu]
385e7b980443: Retrying in 6 seconds
93fe5700ccde: Retrying in 6 seconds
f8ff53a18f9c: Retrying in 6 seconds
da4cea292524: Retrying in 6 seconds
61aa2b965a31: Retrying in 6 seconds
bfb0540909d7: Waiting
0738501db4be: Waiting
dd430db1a431: Waiting
954c82bdeb5f: Waiting
unknown: Authentication is required” message

这个表示用户鉴权失败,也就是需要用户进行登录。但 docker login 已经成功了,为什么还会出现这样的错误呢?
这是因为 docker login 时使用的 docker registry 域名与 镜像名称上的域名不一致所导致的。
在这里插入图片描述
如上图所示, docker repository 的 url 为 http://127.0.0.1:8082/artifactory/docker/ ,所以有些人使用它作为域名来进行登录。其实是不需要 artifactory 的,jfrog 服务域名后直接加 repository 的 名字即可。虽然下面两个都能出现登录成功的提示,但第一条命令在执行 push 等操作时会出现 Authentication 的错误。

~ $: docker login http://127.0.0.1:8082/artifactory/docker/ # incorrect
~ $: docker login http://127.0.0.1:8082/docker/ # correct

同时需要注意,镜像名称前缀需要和 login 的一致,即:

docker login http://localhost:8082/docker
                    localhost:8082/docker/ubuntu:20.04 # 镜像名

网站公告

今日签到

点亮在社区的每一天
去签到