我正在按照这个链接创建我的第一个docker映像,它成功了,现在我试图从这个链接将这个映像推到我的docker存储库中。但是每当我试图将这个映像推入存储库时,我就会得到这种类型的错误。

denied: requested access to the resource is denied

注:我已成功登录docker


当前回答

之前的答案都是正确的,我只是想补充一个我看到没有提到的信息;

如果项目是私有项目,要正确地推送映像,必须配置个人访问令牌或启用read_registry key的部署令牌。

来源:https://gitlab.com/help/user/project/container_registry using-with-private-projects

希望这是有帮助的(如果问题是张贴到目前为止的时间)

其他回答

docker处理用户id和存储库的方式可能有点令人困惑。 假设您在docker hub上创建了一个用户帐户xyz。新帐户自动建立名称空间xyz。 然后创建一个名为myrepo的存储库。存储库名称实际上是xyz/myrepo。

要推送一个图像,你应该做:

docker push docker.io/xyz/myrepo

如果需要,可以添加“:latest”或其他标签。

如果你得到的资源访问请求被拒绝错误消息:

访问https://hub.docker.com/并以xyz登录。 单击存储库xyz/myrepo。 点击合作者。 添加xyz作为合作者。

当我在标记图像时使用docker中心名时,它为我工作。(这里,xyz是一个docker中心名)

# Login to docker hub account 
docker login 

# tag image 
docker tag nginx xyz/nginx

# push image
docker push xyz/nginx

最简单的方法是使用docker桌面(适用于Windows 10或以上版本和mac)

通过提供dockerID注册docker hub

然后点击docker桌面图标在你的机器和->首选项->然后登录到它使用docker枢纽docker/id和密码。

使用以下命令:

$ docker login
<enter user name and password for Docker Hub Repository>

$ docker tag first-image {docker-hub-username}/{default-repo-folder-name}:first-image

$ docker push {docker-hub-username}/{default-repo-folder-name}:first-image

例如,我有像manjeet86/docker-repo这样的公共存储库,所以命令将是:

$ docker tag first-image manjeet86/docker-repo:first-image

$ docker push manjeet86/docker-repo:first-image

你看:而不是/这就是窍门。这对我很管用。我不知道它是否让你用/来代替:,但这可能是出于其他目的。

https://docs.docker.com/engine/reference/commandline/tag/#examples

我也有同样的问题。我强烈推荐大家浏览一下这个博客。

我的问题更多地与ACR有关。Docker客户端将引用配置。您的SP证书文件将存储在json文件中(角色所有者)。

博客中帮助我解决问题的部分有:

Docker镜像ls Docker标签.azurecr.io/:v1 Docker推送.azurecr.io/:v1

在此操作之前,我还创建了一个具有所有者特权的SP。