将 Docker Windows 映像推送到 Docker Hub 时出错 - 解析 HTTP 响应时出错:无效字符/管理规则禁止请求

将 Docker Windows 映像推送到 Docker Hub 时出错 - 解析 HTTP 响应时出错:无效字符/管理规则禁止请求

注意: 这是一个转自 StackOverflow

我正在尝试将 Windows Core Docker 映像推送到我的 Docker Hub 帐户。我收到的错误消息 (1) 是:

$ docker push <MY_DOCKER_HUB_USERNAME>/<MY_IMAGE>
The push refers to a repository [docker.io/MY_DOCKER_HUB_USERNAME/MY_IMAGE] (len: 2)
46e2fd82ef4a: Preparing
Error parsing HTTP response: invalid character '<' looking for
beginning of value: "<html><body><h1>403 Forbidden</h1>\nRequest
forbidden by administrative rules.\n</body></html>\n\n"

在推送之前,我已经通过登录使用从我的 Mac OS X 框中获得了正确的身份验证:

$ docker login --username=<MY_USERNAME> --email=<MY_EMAIL@MY_SERVER.COM>
WARNING: login credentials saved in /Users/<MY_USERNAME>/.docker/config.json
Login Succeeded

一旦我通过了身份验证,我认为从 Docker Hub 收到“403 Forbidden”错误是没有意义的。此外,不清楚这些“管理规则”是什么,但也许它们阻止我将我的镜像推送到 Docker Hub 注册表中。请注意我的存储库被标记为“公共”,并且我的默认策略(Docker Hub 仪表板中“设置”中的“默认存储库可见性”)。

我尝试在 Windows Server Core 中执行相同操作,无法使用相同的凭证进行身份验证

C:\>docker login --username=<MY_USERNAME> --email=<MY_EMAIL@MY_SERVER.COM>
Password:
Error response from daemon: Unexpected status code [403] :
<html><body <h1>403 Forbidden</h1>
Request forbidden by administrative rules.
</body></html>

Windows Core 框中的 Docker 客户端版本:

C:\>docker --version
Docker version 1.10.0-dev, build 59a341e

Mac OS X 中的 Docker 客户端:

$ docker --version
Docker version 1.9.1, build a34a1d5

Windows Server 核心版本:

PS C:\> [System.Environment]::OSVersion.Version

Major  Minor  Build  Revision
-----  -----  -----  --------
10     0      10586  0

附言:无论我尝试从 Mac OS X 框内推送(使用我的 Windows Core 框公开的 API)还是直接从我的 Windows Core 框内推送,它们总是会导致相同的错误消息 (1)。它指出整个过程取决于 Windows Server Core 框的身份验证,并且由于它无法正常工作,结果将始终相同。

答案1

目前,这是预期的行为。Docker 仍处于 Windows 开发的早期阶段。本文档具体指出,与 DockerHub 相关的命令尚不受支持。根据 #docker-dev (Freenode) 中的 jhowardmsft 的说法:“使用 (Win Server 2016) Technical Preview 4,它应该能够推送到 Docker Trusted Registry”。

相关内容