我正在按照这个链接创建我的第一个docker映像,它成功了,现在我试图从这个链接将这个映像推到我的docker存储库中。但是每当我试图将这个映像推入存储库时,我就会得到这种类型的错误。
denied: requested access to the resource is denied
注:我已成功登录docker
我正在按照这个链接创建我的第一个docker映像,它成功了,现在我试图从这个链接将这个映像推到我的docker存储库中。但是每当我试图将这个映像推入存储库时,我就会得到这种类型的错误。
denied: requested access to the resource is denied
注:我已成功登录docker
当前回答
另一个(非常聪明的)原因是:你的计划已经没有私人回购了。
其他回答
这可能是特定于DigitalOceans容器注册表,但它可能有帮助:
在我的例子中,我的管道在docker推送之后触发了一个清理作业(doctl注册表垃圾收集启动),这将注册表置于只读模式(参见doc)。因此,在清理作业处于活动状态时的下一个推送将被拒绝:对资源的请求访问将被拒绝。
如果doctl注册表垃圾收集get-active返回404,则作业完成,docker推送将成功完成。
在我的例子中,sudo -E处理此消息失败。解决方案是提供访问do docker而不使用sudo(创建一个组docker,将(Jenkins)用户添加到组中,将组设置在/var/run/docker.sock上)。现在docker push不需要sudo了,而且可以工作。
如果在使用Azure容器注册表时遇到此问题,可以先登录到注册表来解决。
docker login yourregistry.azurecr.io
然后标记您的映像以匹配注册表的主机名。
docker image tag yourimagename:[version] yourregistry.azurecr.io/yourimagename:[version]
最后按一下。
docker push yourregistry.azurecr.io/yourimagename:[version]
不允许误导标签名称。 我的解决方法是:
Command 1(Create Tag): docker tag my-nginx:latest rsachde/nginx-repository/trys:1.0 (Didn't push)
Command 2(Push): docker push rsachde/nginx-repository/try:1.0
输出:
Denied:拒绝访问资源的请求
Command 1.1(Create Tag): docker tag my-nginx:latest rsachde/nginx-repository/:trys
Command 2.2(Push): docker push rsachde/nginx-repository:trys
输出:
trys: digest: sha256:405b6f0ae25772ef71b8f59fd6a56ff9b426f50bd24bac2b5db41f65efd3387c 尺寸:1365
误导是标签,确保你们理解。
登录docker后,您需要用前缀命名您的映像。
例如,如果你在docker-hub中的用户名是Shah,图像应该是:
Shah/firstimage