无法将Docker映像推送到Docker Hub;请求的对资源的访问被拒绝

问题描述

我想将许多新的Docker映像推送到Docker Hub。我已经在Docker Hub上创建了所有空的存储库,并添加了具有所需特权级别的团队和成员。这些用户之一是jenkinsrelease。该用户是团队mihbuildmihrelease的成员。以一个仓库meanwhileinhell/search-server为例,每个团队的权限分别为mihbuild - Read onlymihrelease - Read & write

我正在使用bmuschko的Gradle Docker API插件从我的Jenkins构建创建的运行Ubuntu的EC2从属实例构建和推送映像。但是,每当我尝试将映像推送到Docker Hub(./gradlew dockerPushImage)时,都会出现以下错误:

> Task :search-server:dockerPushImage FAILED
Pushing image 'meanwhileinhell/search-server:0.0.1-SNAPSHOT'.

* What went wrong:
Execution failed for task ':search-server:dockerPushImage'.
> Could not push image: denied: requested access to the resource is denied

我已在命令行上登录Docker,并说我已成功登录:

docker login -u jenkinsrelease -p pasword1234

Login Succeeded

看着我的config.json,我可以看到auth部分已更新:

-rw------- 1 ubuntu ubuntu 184 Sep 2 08:31 /home/ubuntu/.docker/config.json

{
        "auths": {
                "https://index.docker.io/v1/": {
                        "auth": "wrjauhgfoihfwu1y2tyed6uyiom="
                }
        },"HttpHeaders": {
                "User-Agent": "Docker-Client/18.06.3-ce (linux)"
        }
}

我还尝试了注销并再次登录,还登录了registry-1.docker.ioindex.docker.io/v2,它们将相应的条目添加到了config.json中。我尝试登录hub.docker.com,但报告了一个错误(我知道这与docker.io相同):

{
        "auths": {
                "https://index.docker.io/v1/": {
                        "auth": "wrjauhgfoihfwu1y2tyed6uyiom="
                },"index.docker.io": {
                        "auth": "wrjauhgfoihfwu1y2tyed6uyiom="
                },"registry-1.docker.io": {
                        "auth": "wrjauhgfoihfwu1y2tyed6uyiom="
                }
        },"HttpHeaders": {
                "User-Agent": "Docker-Client/18.06.3-ce (linux)"
        }
}

我不知道它是否有所不同,但这是第一次将图像推送到这些存储库,它们目前都是空的。

docker info的输出是:

Containers: 3
 Running: 0
 Paused: 0
 Stopped: 3
Images: 65
Server Version: 18.06.3-ce
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 49
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 468a545b9edcd5932818eb9de8e72413e616e86e
runc version: a592beb5bc4c4092b1b1bac971afed27687340c5
init version: fec3683
Security Options:
 apparmor
Kernel Version: 4.15.0-65-generic
Operating System: Ubuntu 18.04.3 LTS
OSType: linux
Architecture: x86_64
CPUs: 8
Total Memory: 31.41GiB
Name: ip-172-31-37-204
ID: 7WRO:A5BW:TELQ:KBVM:WCVP:HUZC:DHLY:JXYS:WDUV:YQ76:F2VA:H4WG
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Username: jenkinsrelease
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

依次运行的命令的完整列表为:

docker login -u jenkinsrelease -p password1234
./gradlew clean build
./gradlew dockerBuildImage
./gradlew dockerPushImage

解决方法

这是所使用的bmuschko Docker插件版本中的错误。是在6.1.2上,更新到6.6.1解决了该问题。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...