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

denied: requested access to the resource is denied

注:我已成功登录docker


当前回答

我有一个类似的问题,我通过创建一个具有相同映像名称的存储库来解决它,然后将它推到docker,它工作了

其他回答

登录docker后,您需要用前缀命名您的映像。

例如,如果你在docker-hub中的用户名是Shah,图像应该是:

Shah/firstimage

Docker登录参数在~/. Docker /config。Json应该正确设置(这是在登录后自动完成)

1)不传递SERVER参数登录:

$ echo "<password>" | docker login -u foo --password-stdin

成功登录后,在~/.docker/config中会出现如下结果。Json和push image成功。

***
"https://index.docker.io/v1/": {
    "auth": "YWNhcm***"
}
***

2)登录时传递SERVER参数index.docker.io

$ echo "<password>" | docker login index.docker.io -u foo --password-stdin

成功登录后,在~/.docker/config中会出现如下结果。Json和push image失败。

***
"index.docker.io": {
    "auth": "YWNhcm***"
}
***

我的答案与Azure DevOps相关,类似于我在以下通用管道中遇到的问题(它更具体,但它可能有助于节省时间):

从github获取资源 构建docker映像 推送docker镜像到dockerhub

我在推送拒绝时收到的错误:对资源的请求访问被拒绝发送到这里。

请注意映像名称中包含的变量$(Build.Repository.Name)。它默认是来自github的存储库名称,但为了让您的推送工作,它应该是dockerhub_account_username/your_dockerhub_repository_name。

将$(build . repository . name)替换为dockerhub_account_username/your_dockerhub_repository_name在映像名称字段中用于构建和推送步骤。

dockerhub api需要这一点来知道在哪里推送图像。

DR docker登录在macOS上不工作,但从应用程序的docker登录工作

当直接从终端使用时,命令docker登录成功地要求我的凭据,在我正确输入它们之后(记住没有电子邮件,只有docker ID将工作),它宣布登录成功,但任何推送请求将以拒绝告终:请求访问资源被拒绝

然而,当我从正在运行的macOs docker应用程序登录时(工具栏中的图标),它工作了。因此,docker登录和运行的docker应用程序/守护进程之间可能会有一些不一致

还需要注意的重要一点是,在标记图像时,首先使用命名空间标记,然后使用存储库/ mydevrepo标记。这让我在使用Docker文档时感到困惑。之后我使用:

docker login

然后我使用“tagged name”来推送我的图像。

docker push {namespace}/mydevrepo