如何修复 docker push error: denied: requested access to the r…

スポンサーリンク

docker push error: denied: requested access to the resource is denied 的解决方案

错误概述

在使用 Docker 的 docker push 命令将镜像推送到 Docker Hub 或其他容器注册中心时,可能会遇到错误信息:“docker push error: denied: requested access to the resource is denied”。这个错误通常表示您没有权限将镜像推送到指定的资源,可能是因为未正确登录、没有足够的权限或镜像未被正确标记。

常见原因

导致此错误的原因可能有多种,以下是一些常见的原因:

  1. 未登录 Docker Hub:在推送镜像之前,您需要确保已登录到 Docker Hub 账户。
  2. 镜像未标记:在推送镜像之前,必须为其指定一个合适的标签,通常格式为 YOUR_DOCKERHUB_NAME/your_image_name
  3. 权限不足:您可能没有权限向指定的 Docker Hub 仓库推送镜像。
  4. 使用了错误的用户名或密码:登录时输入的用户名或密码错误。
  5. 镜像名称错误:镜像名称与您在 Docker Hub 上创建的仓库名称不匹配。
  6. 网络问题:网络连接不稳定或 Docker Hub 服务暂时不可用。

解决方法

为了解决该错误,您可以尝试以下几种方法:

方法 1: 重新登录 Docker Hub

确保您已登录到 Docker Hub。可以通过以下命令重新登录:

  1. 打开终端。
  2. 输入以下命令:
    bash
    docker login
  3. 输入您的 Docker Hub 用户名和密码。

如果您之前已登录但仍遇到此错误,建议您退出后重新登录。

方法 2: 正确标记镜像

在推送镜像之前,确保您已为其正确定义标签。执行以下步骤:

  1. 使用 docker tag 命令为镜像添加标签:
    bash
    docker tag local-image:tag YOUR_DOCKERHUB_NAME/your_image_name

    例如,如果您的镜像名为 myimage,可以使用:
    bash
    docker tag myimage YOUR_DOCKERHUB_NAME/myimage
  2. 然后,使用 docker push 命令推送镜像:
    bash
    docker push YOUR_DOCKERHUB_NAME/myimage

方法 3: 检查镜像名称和权限

确保您推送的镜像名称与您在 Docker Hub 上创建的仓库名称完全匹配。如果您没有创建仓库,应在 Docker Hub 上创建一个。

  1. 登录到 Docker Hub,创建名为 YOUR_DOCKERHUB_NAME 的新仓库。
  2. 确保您有权限向该仓库推送镜像。

方法 4: 使用 sudo 进行推送

如果您在使用 Linux 系统,可能需要使用 sudo 权限来执行 Docker 命令。尝试使用以下命令:

sudo docker login
sudo docker push YOUR_DOCKERHUB_NAME/myimage

方法 5: 使用 docker build-push-action(适用于 GitHub Actions)

如果您在 GitHub Actions 中构建和推送 Docker 镜像,确保使用正确的 docker/build-push-action 版本,并在步骤中定义您的 Docker Hub 仓库名称。以下是一个示例配置:

“`yaml
name: Docker build and push

on:
push:
branches:
– “main”

jobs:
build:
runs-on: ubuntu-20.04
steps:
– name: Checkout
uses: actions/checkout@v3
– name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: $

コメント

タイトルとURLをコピーしました