我正在跟踪此链接以创建我的第一个Docker映像,该映像成功运行,现在我正尝试通过此链接将此映像推送到我的docker存储库中。但是,每当我尝试将此映像推送到存储库中时,都会出现此类错误。
denied: requested access to the resource is denied
有人可以给我一些有关这个问题的提示吗?任何帮助,将不胜感激。
注意:我已成功登录docker
我正在跟踪此链接以创建我的第一个Docker映像,该映像成功运行,现在我正尝试通过此链接将此映像推送到我的docker存储库中。但是,每当我尝试将此映像推送到存储库中时,都会出现此类错误。
denied: requested access to the resource is denied
有人可以给我一些有关这个问题的提示吗?任何帮助,将不胜感激。
注意:我已成功登录docker
Answers:
在docker push之前,您可能需要将docker repo切换为private。
多亏了答案提供吴院长与此评论由SES,推前,记得要注销,然后登录命令行到您的码头工人枢纽帐户
# you may need log out first `docker logout` ref. https://stackoverflow.com/a/53835882/248616
docker login
根据文档:
You need to include the namespace for Docker Hub to associate it with your account.
The namespace is the same as your Docker Hub account name.
You need to rename the image to YOUR_DOCKERHUB_NAME/docker-whale.
因此,这意味着您必须在推送之前标记图像:
docker tag firstimage YOUR_DOCKERHUB_NAME/firstimage
然后您应该可以推动它。
docker push YOUR_DOCKERHUB_NAME/firstimage
[host]/[namespace]/[repo]
但仍然是相同的错误(意味着,我拥有组织和帐户作为名称空间)。甚至尝试过docker login ...
。我不能推:-|
我在参加Docker初学者课程时遇到了同样的问题。我通过做一个解决了这个问题docker login
docker push调用之前。
docker login
。 sudo docker login
为我工作。这使我可以进行私人回购。
我有同样的问题,但是这里给出的可接受答案对我不起作用。我尝试了几个步骤,终于能够解决问题。希望这对某人有帮助。
这是为我工作的步骤:
1)登录到码头工人。
docker login -u sirimalla
2)标记您的图像构建
在这里我的形象的名字是:mylocalimage默认情况下它具有标签:最新的
和我的用户名是:sirimalla与泊坞窗云注册,和我创建了一个名为公共仓库:dockerhub
所以我的个人存储库现在变成了:sirimalla / dockerhub
,我想用tag推送图像:myfirstimagepush
我标记如下:
docker tag mylocalimage:latest sirimalla/dockerhub:myfirstimagepush
3)将映像推送到我的个人docker存储库中,如下所示
docker push sirimalla/dockerhub:myfirstimagepush
它成功地推送到了我的个人docker存储库中。
docker login
。在进入这个主题之前,我并不了解docker login
。
使用以下命令:
$ 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
:
代替/
,谢谢。
docker处理用户ID和存储库的方式可能会有些混乱。假设您在Docker Hub上创建了一个用户帐户xyz。新帐户将自动建立一个名称空间xyz
。然后,您创建一个名为myrepo的存储库。存储库名称实际上是xyz/myrepo
。
要推送图像,您应该执行以下操作:
docker push docker.io/xyz/myrepo
您可以根据需要添加“:latest”或其他标签。
如果收到requested access to the resource is denied
错误消息:
不确定Docker Hub发生了什么,但是发布的所有解决方案都不适合我。这是截至2018年1月对我有用的解决方法:
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
verse_gapminder_gsl latest 023ab91c6291 3 minutes ago 1.975 GB
verse_gapminder latest bb38976d03cf 13 minutes ago 1.955 GB
rocker/verse latest 0168d115f220 3 days ago 1.954 GB
docker tag bb38976d03cf dockhubusername/verse_gapminder:mytag
docker login docker.io
docker push dockhubusername/verse_gapminder:mytag
Docker对您可以拥有的私有存储库的数量也有限制。如果要通过从本地计算机推送来创建私有存储库,它将创建存储库,但无法将其进一步推送或从中拉出,并且会出现“请求的对资源的访问被拒绝”错误。
操作系统:Ubuntu16.04
原因:我删除了客户端配置文件(〜/ .docker / config.json)
解:
docker login https://index.docker.io/v1/ -u=yourusername
我的问题很简单,就是在图片名称中使用无效字符(一个额外的/):
myusername/something/image
是无效的图片名称。尝试myusername / something-image。希望这对某人有帮助。
__
。
我也遇到了这个问题,我在这里测试了解决方案,但无济于事,至少根据的输出,我已经正确登录,docker login
但仍然无法推送图像。最终奏效的只是要做:
docker logout
再docker login
一次,那是微不足道的。我不确定发生了什么,但是强制重新登录有效。
如果在使用Azure容器注册表时遇到此问题,则可以通过首先登录到注册表来解决此问题。
docker login yourregistry.azurecr.io
然后标记您的图像以匹配您的注册表的主机名。
docker image tag yourimagename:[version] yourregistry.azurecr.io/yourimagename:[version]
然后最后将其推入。
docker push yourregistry.azurecr.io/yourimagename:[version]
对于那些尝试将图像推送到自己的Nexus Repository Manager的用户,请执行以下操作:
1)登录到您的Nexus Repository Manager(端口8443与特定的Docker主机存储库相关联)
sudo docker login xxx.mydomain.com:8443
2)使用您的NEXUS SERVER IP / DNS标记图像
sudo docker tag myimage:latest xxx.mydomain.com:8443/myimage:1.0.0
3)推图片
sudo docker push xxx.mydomain.com:8443/myimage:1.0.0
简单的工作解决方案:
转到此处https://hub.docker.com/
创建一个名称为PRIVATE的存储库,例如,johnsmith/private-repository
这是NAME/REPOSITORY
构建映像时将用于映像的名称。
第一, docker login
其次,我使用“ docker build -t johnsmith/private-repository:01 .
”创建图像,然后使用“ docker images
”确认创建的图像,例如下面的黄色框:(抱歉,我不能粘贴表格格式,只能粘贴文本字符串)
johnsmith / private-repository(存储库)01(TAD)c5f4a2861d6e(图像ID)2天前(创建)305MB(大小)
docker push johnsmith/private-repository:01
做完了!
我的答案与我在以下常见管道中遇到的类似Azure DevOps问题有关(它更具体,但可能会帮助某人节省时间):
我在推送时收到的错误 denied: requested access to the resource is denied
发送到这里。
请注意$(Build.Repository.Name)
图像名称中包含的变量。默认情况下,它是来自github的存储库的名称,但是对于您的推送工作应该使用dockerhub_account_username/your_dockerhub_repository_name
。
替换$(Build.Repository.Name)
为dockerhub_account_username/your_dockerhub_repository_name
在图像名称字段为构建和推送步骤。
dockerhub api需要使用它来知道将映像推送到哪里。
在将“ docker login https://hub.docker.com ” 更改为“ docker login docker.io ”后,它起作用了 ”并提供了用户名和密码后,此方法成功了。
然后遵循以下命令:
docker tag local-image:tagname new-repo:tagname
docker push new-repo:tagname
注意: “ new-repo”将包含“ Docker ID + Repo name”
在这里,在运行以下命令之前,我已经在Docker Hub中创建了“ ubuntu”存储库。
例:
docker tag alok/ubuntu:latest aloktiwari2007/ubuntu:latest
docker push aloktiwari2007/ubuntu:latest
因此,以防万一对任何人都有帮助...
我遇到了同样的问题,这就是我的问题以及FIX的含义。
sudo docker run -d
--restart=always \
--name registry \
-v /srv/registry/certs:/certs \
-v /srv/registry/storage:/var/lib/registry \
-e REGISTRY_HTTP_ADDR=0.0.0.0:443 \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/galaxy.cert \
-e REGISTRY_HTTP_TLS_KEY=/certs/galaxy.key \
-p 443:443 \
registry:2
然后我试图将图像从网络上的笔记本电脑推送到银河,所以我这样做:
docker login galaxy
这会给我一个错误,说:
Login did not succeed, error: Error response from daemon:
Get https://galaxy/v2/: x509: certificate signed by unknown authority
奇怪的是,解决此问题的方法是进行这样的登录:
docker login galaxy:443
这导致成功登录。
因此,我尝试将图像从笔记本电脑推到“银河”。
我已经为图像创建了一个标签,如下所示:
galaxy/myImage:0.0.1
所以我试图推动它这样做:
docker push galaxy/myImage:0.0.1
我得到的答复是:
The push refers to repository [docker.io/galaxy/myImage]
7ab460574f86: Preparing
1aecaf56754d: Preparing
1df1b5f06ca4: Preparing
denied: requested access to the resource is denied
奇怪的是,我发现解决此问题的方法是首先标记图像,如下所示:
docker tag myImage:0.0.1 galaxy:443/myImage:0.0.1
...然后像这样进行推送:
docker push galaxy:443/myImage:0.0.1
因此由于某种原因,我不得不在标记中包括端口,将其作为存储库名称的必需部分。
希望这对其他人有帮助。
以前的所有答案都是正确的,我只想添加一条我未提及的信息;
如果项目是私有项目以正确推送映像,则必须配置个人访问令牌或在启用read_registry密钥的情况下部署令牌。
来源:https : //gitlab.com/help/user/project/container_registry#using-with-private-projects
希望这会有所帮助(如果问题已在当前时间发布)
这个答案对我未来的自我和其他人一样重要。当我正确登录时,我遇到了这个确切的问题,但是当我的私有存储库数量大于或等于计划允许的限制时,我试图推送到私有存储库。
我不确定我如何能够创建太多私人仓库,但是如果我的计划包括5个私人仓库,以某种方式我有6个私人仓库,那么这就是我将收到的错误:
denied: requested access to the resource is denied
在我的情况下,由于我的默认可见性设置为private,最终我可能拥有太多的私有存储库:
在这里,您可以确定可以拥有多少个私人仓库:
一旦我将有问题的回购公之于众,问题就显而易见了:
我很难再添加一个答案,但是接受的答案和提及的其余答案docker login
都缺少解决其他人在评论中指出的问题的案例。
docker login <private-repo-host>:<port>
port
对于仍在搜索的人来说,强调需要输入可能是解决方案。docker login
或docker login <private-repo-host>
可以毫无问题地进行连接,但是当需要推送图像时,您将得到与OP相同的错误。
也就是说,您可以不定义主机或端口进行连接,但仍然获得:
...
登录成功
就我而言,我使用的是自托管的GitLab,它内置于docker-registry中,设置为使用port 4567
。验证必须从哪个端口访问注册表可能是一种冒险。没有指定该端口docker login <our.gitlab.host>
将成功登录,但是给OP询问相同的问题:
...
推送指的是存储库[...]
拒绝:禁止访问
如果您使用的是docker.io/dockerhub,则可能不会出现此问题,但是如果您使用的是自托管/私有注册表解决方案,则概率增加,您需要同时使用docker注册表的主机和端口进行登录。
请勿误导标签名称。
我解决这个问题的方法:
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
输出:
拒绝:请求的对资源的访问被拒绝
Command 1.1(Create Tag): docker tag my-nginx:latest rsachde/nginx-repository/:trys
Command 2.2(Push): docker push rsachde/nginx-repository:trys
输出:
尝试:消化:sha256:405b6f0ae25772ef71b8f59fd6a56ff9b426f50bd24bac2b5db41f65efd3387c大小:1365
Tag具有误导性,请确保您理解。
最简单的方法是使用docker桌面(适用于Windows 10或更高版本和Mac)
通过提供dockerID首次注册到docker hub
然后单击计算机中的docker桌面图标,然后->首选项->然后使用docker hub docker / id和密码登录。
尝试注销“ Docker for Windows”应用程序,然后注销 https://hub.docker.com/站点,然后执行“ docker login”和“ docker push”。它对我有帮助。