【问题标题】:Can't build docker image: "requested access to the resource is denied"无法构建 docker 映像:“请求的资源访问被拒绝”
【发布时间】:2020-06-30 13:28:30
【问题描述】:

我无法将我的 docker 镜像推送到我的 docker hub 存储库。

我已登录。存储库存在并且是公开的。我尝试了多种方式来构建/标记/推送我的图像。

docker login -u username -p password
docker build ./ -t my-image -f devops/Dockerfile
docker tag image username/my-image
docker push username/my-image

我在多个网站上抓取了数十个问题。答案总是要么如何正确登录,要么如何标记和推送图像。在我看来,我都做对了,那么有什么问题?

【问题讨论】:

  • 请更新您的问题 * 主机操作系统和版本 * Docker 版本(docker 版本) * docker info 的输出 * Dockerfile * 您用于构建/运行容器的命令,以及您看到的任何相关输出(屏蔽任何敏感信息)

标签: docker dockerhub


【解决方案1】:

您是否使用 docker 命令登录?像这样的

echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin

我猜你需要在你的图片上设置 :latest 标签。并尝试使用 :latest 标签推送它。还要正确命名容器。

注意只有a-z0-9-_。命名图像时允许:

docker tag myImage myusername/myimage:latest 
docker push myusername/myimage:latest

我是这样做的,它对我有用。

这是我的示例 bash 脚本,用于在成功构建后自动标记图像并将其推送到 docker hub。

#!/bin/bash
docker build -t myusername/myimage:latest .
echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
docker push myusername/myimage:latest

docker tag myusername/myimage:latest myusername/myimage:1
docker push myusername/myimage:1

docker tag myusername/myImage:latest myusername/myimage:1.1
docker push myusername/myImage:1.1

docker tag myusername/myimage:latest myusername/myimage:1.1.1
docker push myusername/myimage:1.1.1

【讨论】:

  • 问题出在格式上。不支持我的烤肉串盒图像名称。不幸的是,这种情况没有具体的错误消息......谢谢
  • 这很奇怪,因为几个月来我的 kebab-case 图像没有任何问题,我可以推送它,但今天它坏了。这肯定有更多的东西,但我不知道是什么。
  • 另外,您能否将引用的来源添加到您的答案中?
【解决方案2】:

我通常只写

docker login

然后要求您输入您的详细信息或说它正在使用您已保存在系统中的现有详细信息。否则,我看不出你的命令有什么问题。

我不确定只写docker login 会产生什么不同,但看不到任何其他差异。

【讨论】:

  • 我以前也是这样。由于它不起作用,我尝试编写整个命令,但它仍然不起作用。
  • 会不会是 docker build ./ -t myImage -f devops/Dockerfile 缺少 Dockerfile 的整个路径并且没有完成构建?应该是/devops/Dockerfile?
  • 不,这条路径是正确的。大卫找到了答案:我的图片名称格式不正确(不支持中分字符,我使用了一些)。
猜你喜欢
  • 1970-01-01
  • 2017-06-18
  • 1970-01-01
  • 2017-10-07
  • 2020-12-21
  • 1970-01-01
  • 2020-05-30
  • 1970-01-01
  • 2023-02-14
相关资源
最近更新 更多