拉取访问被拒绝,仓库不存在或可能需要进行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个回答

0

我不得不重新构建容器!其他方法对我都没有用。

docker run build <imagename>

0

我曾经遇到同样的问题,提供的解决方案均未得到帮助。对我而言,需要登录,但是我花了一些时间才弄清楚在pull指令中必须添加服务器路径:

docker login registry-1.docker.io -u <DOCKER_USERNAME> -p <DOCKER_ACCESS_TOKEN>
docker pull registry-1.docker.io/<DOCKER_USERNAME>/<REPO_TAG>:latest

Server registry-1.docker.io 是 Docker Hub 的默认服务器名称。


0

我遇到了同样的问题,但是什么都没用。后来我明白了,在执行docker-compose之前,我需要先运行.sh.ps1)脚本。

所以我有以下文件:

   docker-compose.yml
   
   docker-build.sh
   
   docker-build.ps1
   
   Dockerfile

我必须先在Unix(Mac)机器上运行docker-build.sh或在Windows上运行docker-build.ps1

sh docker-build.sh

在我的情况下,它将构建一个图像。 只有在构建了图像之后,我才能运行:

docker-compose up --build

参考资料。这是我的docker-compose文件:

version: '3.8'

services:

  api-service:
    image: x86_64/prediction-service:0.8.1
    container_name: api-service
    expose:
      - 8060
    ports:
      - "8060:80"    

这里是 docker-build.sh:

VERSION="0.8.1"
ARCH="x86_64"
APP="prediction-service"
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
docker build -f $DIR/Dockerfile -t $ARCH/$APP:$VERSION .

0
我在尝试在 M1 Mac 上运行图像时遇到了这个问题,因为我将图像构建为 amd 架构,而不是正确的架构。重新构建具有正确架构的图像解决了问题,非常顺利。
docker build --platform linux/arm64 -t docker-image:test .

arm64 替换为 amd64 以适用于英特尔架构

0
在我的情况下,这在本地工作得很好。对于一个 GitHub Action 实例来说也是正常工作的,但对于另一个实例来说却无法正常工作,原因不明。我对运行程序的磁盘空间进行了更改,以为这可能与问题有关,结果现在可以正常工作了。
    ...
    steps:
    # Source: https://github.com/marketplace/actions/free-disk-space-ubuntu
    - name: Free Disk Space (Ubuntu)
      uses: jlumbroso/free-disk-space@main

    ...

0
错误 [服务器内部] 加载 docker.io/library/base:latest 的元数据
在我的情况下,我的 Dockerfile 使用了多个阶段,其中一个阶段引用了一个不存在的阶段名称。
FROM <image-name>

# ...

FROM base AS development # I forgot to ad "AS base" above


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