You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS EC2实例推送Docker镜像至Docker Hub失败(报错:requested access to the resource is denied)

AWS EC2实例推送Docker镜像至Docker Hub失败(报错:requested access to the resource is denied)

看起来你遇到的这个权限拒绝问题挺常见的,既然本地能正常推送,那大概率不是Docker Hub仓库本身的问题,咱们从EC2实例这边排查几个关键点:

  • 重新确认Docker登录状态
    有时候docker login的会话可能因为超时或者配置问题失效,甚至有可能你在EC2上用了和本地不同的Docker Hub账号。建议先登出再重新登录,确保输入的用户名和密码准确:

    docker logout
    docker login
    

    也可以检查登录凭据是否正确,查看~/.docker/config.json文件中的auth字段(该字段是base64编码的,你可以解码后验证是否与你的账号密码匹配)。

  • 确保镜像标签完全匹配Docker Hub仓库
    你构建镜像时使用的docker build <user_name>/<repo_name>有没有指定标签?如果Docker Hub仓库默认用latest标签,建议重新为镜像打正确的标签,确保标签里的用户名和你登录的Docker Hub账号完全一致(注意大小写,虽然Docker Hub用户名不区分大小写,但标签匹配要严格):

    docker tag <你的镜像ID> <user_name>/<repo_name>:latest
    

    打完标签后再执行推送命令试试。

  • 检查Docker镜像源配置
    如果你的EC2实例配置了第三方Docker镜像加速源(比如国内的镜像源),可能会干扰向Docker Hub的推送操作。可以查看/etc/docker/daemon.json文件,若存在非Docker Hub的registry配置,暂时注释掉,然后重启Docker服务:

    sudo systemctl restart docker
    

    重启后重新尝试推送。

  • 排查EC2实例的IAM角色权限(可能性较低)
    虽然你已经开放了安全组的全出站规则,但如果EC2实例挂载了IAM角色,且角色中存在禁止访问docker.io的策略,也会导致推送失败。可以查看实例的IAM角色权限,确保没有相关限制。

  • 验证Docker Hub仓库权限
    虽然你本地能正常推送,但还是可以确认下Docker Hub仓库的权限设置:如果是组织名下的仓库,要确保你登录的账号被添加为仓库的维护者;如果是私有仓库,确认账号拥有推送权限。

小测试

如果以上方法都没解决问题,可以尝试在EC2上拉取一个公开镜像做测试:

docker pull alpine
docker tag alpine <user_name>/test-demo:latest
docker push <user_name>/test-demo:latest

如果这个测试也失败,说明问题出在EC2实例与Docker Hub的连接或权限配置上;如果成功,那可能是你原来的镜像标签或构建过程有问题。

备注:内容来源于stack exchange,提问作者Langesh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 09:54:34