拉取访问被拒绝,仓库不存在或可能需要进行Docker登录。

243

我正在使用带有Docker的Laravel 4.2。我在本地设置它,没有任何问题,但当我尝试使用相同的过程在线上设置时,我遇到了错误:

pull access denied for <projectname>/php, repository does not exist or may require 'docker login'

创建存储库是否与此相关 https://cloud.docker.com/ 或需要在命令中登录 Docker?

经过几天的学习,我仍然无法弄清楚在这种情况下可能是什么修复方法以及正确的步骤是什么?

我有完整的代码。如果需要检查某些部分,我可以在此粘贴。


有时候问题仅仅是因为你没有构建所需的镜像。当你有 Dockerfile 和 docker-compose.yml 文件,并且在其中声明了一个依赖于另一个镜像(但本地尚未构建)的镜像时,你需要先使用 docker build 构建所需的镜像。 - Ebenezer Nikabou
36个回答

2

关于私有仓库

使用这个模式 用户名/镜像名称:标签

例如,rohitnishad613是我的Docker用户名。

rohitnishad/some-app:latest

1

超出 Docker Hub 免费仓库限制:

尽管首先执行了以下操作:

docker login -u <dockerhub uname>

并收到“登录成功”的返回时,我在这个问题中收到了错误提示。

设置>可见性设置中的webgui中,我注意到:

使用了1个私有仓库中的2个。

这告诉我,我已经超过了Docker Hub免费帐户的限制。但是,删除之前的镜像并没有清除错误...

解决方法:

实际上,在我的情况下,错误消息是一个误导信息——与身份验证问题无关。

然而,仅删除超过允许限制的镜像并不会清除错误!

为了解决错误,您需要删除您免费 Docker Hub 账户中的所有镜像,然后运行新的构建将镜像推送到您的账户中。

现在您的pull命令将会成功执行。


1

在你的docker-compose.yml文件中尝试这个

image: php:rc-zts-alpine

1

我听说过同样的问题。 我通过登录解决了它。

docker login -u your_user_name

然后我被提示输入Docker Hub密码,在登录成功后,其余命令完美运行。


0
在我的情况下,解决方案是通过 Visual Studio 重新创建 Docker 文件,然后一切都完美地运行了。

0

有些人可能会遇到与已经呈现的不同原因导致的相同错误,所以让我分享一下:

当使用Docker多阶段构建(Multiple: FROM <> as <>)时,我遇到了相同的错误。 而我忘记删除一个(COPY --from=<> <>)

删除该COPY后,它就正常工作了。


0
当我在PowerShell中多次运行命令“docker pull scrapinghub/splash”时,它解决了问题。

0

我看到了这个消息,以为我的Docker身份验证出了问题。然而,我意识到Docker免费计划只允许一个私有仓库。因此,你可能正试图拉取你的私有仓库并看到这个错误,因为你还没有升级你的计划。


0

如果这是由于AWS EC2和ECR引起的,可能是名称问题(初学者常见!)

守护程序的错误响应:拉取被拒绝访问my-app,存储库不存在或可能需要“docker login”:拒绝请求访问该资源

使用docker pull时,请使用图像的Image URI,该URI在ECR行中自身作为Copy URI可用

docker pull Image_URI

0

我在 Dockerfile 中将 nginx 拼错成了 nignx。


它给你报了这个错误?这看起来很意外? - Jeremy Caney
@JeremyCaney 是的,它做到了。 - Nishant Kumar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接