我们安装了本地版本的artifactory,它可以托管docker存储库。我可以从chrome浏览存储库,并且托管了一些图像。
当我执行 docker login [我的反向代理的 dns] 时,系统提示我提供我的凭据,然后我收到消息“登录成功”
然后我执行 docker push [image name]:latest 并得到以下输出:
The push refers to repository [docker.io/library/[image name]]
4642eff80520: Preparing
[...truncated output...]
bcf2f368fe23: Waiting
denied: requested access to the resource is denied
这里看起来好像它要转到与我登录的存储库完全不同的存储库?:
docker.io/library/[镜像名称]
然后当我执行 docker logout 时,我得到输出
Not logged in to https://index.docker.io/v1/
我不明白为什么它不允许我将我的图像推送到我登录的存储库?是因为那不是存储库而只是反向代理服务器吗?
我在 Windows 上使用 Docker,docker 版本的输出
Client: Docker Engine - Community
Version: 18.09.2
API version: 1.39
Go version: go1.10.8
Git commit: 6247962
Built: Sun Feb 10 04:12:31 2019
OS/Arch: windows/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 18.09.2
API version: 1.39 (minimum version 1.12)
Go version: go1.10.6
Git commit: 6247962
Built: Sun Feb 10 04:13:06 2019
OS/Arch: linux/amd64
Experimental: false
答案1
如果您正在运行自定义注册表来托管您的图像,您需要告诉 docker 如何执行此操作。
文档docker push有一个例子以及文档如何运行你自己的注册表你需要将主机名添加到你的镜像的前缀中。docker push 文档中给出的示例如下:
$ docker push registry-host:5000/myadmin/rhel-httpd
根据你运行的 docker 版本,你也许可以更改默认注册表。至少根据这StackOverflow 上的问题。请注意,这似乎讨论之前,并且不会成为标准功能。
另一个相关StackOverflow 问题如何将图像推送至私人仓库。