Windows

將 Docker Windows 映像推送到 Docker Hub 時出錯 - 解析 HTTP 響應時出錯:無效字元/管理規則禁止請求

  • March 2, 2016

注意:這是來自 StackOverflow的轉貼。

我正在嘗試將 Windows Core Docker Image 推送到我的 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 伺服器核心版本:

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

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

**PS:**無論我嘗試從我的 Mac OS X 盒子內部(使用我的 Windows Core 盒子暴露的 API)還是直接從我的 Windows Core 盒子內部推送,它們總​​是會導致相同的錯誤消息 (1)。它向我指出,整個過程取決於 Windows Server Core 框的身份驗證,並且由於它無法正常工作,因此結果將始終相同。

此時,這是預期的行為。Docker 仍處於 Windows 開發的早期階段。該文件特別指出尚不支持與 DockerHub 相關的命令。根據 #docker-dev (Freenode) 中的 jhowardmsft:“使用 (Win Server 2016) Technical Preview 4,它應該能夠推送到 Docker 受信任的系統資料庫”。

引用自:https://serverfault.com/questions/761088