2015-11-17 16 views
7

私はDocker ToolboxをWindows 8.1にインストールしており、インストールチュートリアルに従っています。あなたがcreate and push your own imag eのステップに着くと、docker login ...を実行しようとしたときにこのエラーが発生しました。この問題を解決しようとDockerクイックスタートターミナルで「ドッカーログイン」が失敗するのはなぜですか?しかし、デフォルトマシン内で作業しますか?

### VIA Docker Quickstart Terminal 
### docker login --username=myuser --password="mypass" [email protected] 
time="2015-11-17T03:20:58.160803558Z" level=debug msg="Calling POST /v1.21/auth" 
time="2015-11-17T03:20:58.160838971Z" level=info msg="POST /v1.21/auth" 
time="2015-11-17T03:20:58.169033324Z" level=debug msg="hostDir: /etc/docker/certs.d/https:/registry-win-tp3.docker.io/v1" 
time="2015-11-17T03:20:58.169071565Z" level=debug msg="pinging registry endpoint https://registry-win-tp3.docker.io/v1/" 
time="2015-11-17T03:20:58.169084660Z" level=debug msg="attempting v1 ping for registry endpoint https://registry-win-tp3.docker.io/v1/" 
time="2015-11-17T03:20:58.898542338Z" level=debug msg="Error unmarshalling the _ping PingResult: invalid character '<' looking for beginning of value" 
time="2015-11-17T03:20:58.898803841Z" level=debug msg="PingResult.Version: \"\"" 
time="2015-11-17T03:20:58.898818084Z" level=debug msg="Registry standalone header: ''" 
time="2015-11-17T03:20:58.898836197Z" level=debug msg="PingResult.Standalone: true" 
time="2015-11-17T03:20:58.898853685Z" level=debug msg="attempting v1 login to registry endpoint https://registry-win-tp3.docker.io/v1/" 
time="2015-11-17T03:20:59.478756938Z" level=error msg="Handler for POST /v1.21/auth returned error: Unexpected status code [403] : <html><body><h1>403 Forbidden</h1>\nRequest forbidden by administrative rules.\n</body></html>\n\n" 
time="2015-11-17T03:20:59.478815334Z" level=error msg="HTTP Error" err="Unexpected status code [403] : <html><body><h1>403 Forbidden</h1>\nRequest forbidden by administrative rules.\n</body></html>\n\n" statusCode=500 

、私はドッカーのデフォルトのVM内からdocker login ...を実行してみました。そして、それは動作します!

### VIA default virtual machine (192.168.99.100) 
### docker login --username=myuser --password="mypass" [email protected] https://index.docker.io/v1/ 
time="2015-11-17T03:20:46.053333255Z" level=debug msg="Calling POST /v1.21/auth" 
time="2015-11-17T03:20:46.053404176Z" level=info msg="POST /v1.21/auth" 
time="2015-11-17T03:20:46.082796012Z" level=debug msg="hostDir: /etc/docker/certs.d/https:/index.docker.io/v1" 
time="2015-11-17T03:20:46.082930763Z" level=debug msg="pinging registry endpoint https://index.docker.io/v1/" 
time="2015-11-17T03:20:46.082946790Z" level=debug msg="attempting v1 ping for registry endpoint https://index.docker.io/v1/" 
time="2015-11-17T03:20:46.082959103Z" level=debug msg="attempting v1 login to registry endpoint https://index.docker.io/v1/" 

私は、それらが2つの異なるURLを使用しており、最初のものが解析エラーに遭遇していることに気付きました。 2つのドメインがユーザーを共有しない限り、VM内で動作するため、資格情報は明らかに正しいです。 URLまたはレスポンスはMINGW64によってマングルされていますか?

+0

回避策があるようです。私の編集された回答を参照してください。 – VonC

+0

私は答えを更新しました:正式な修正があるようです。 – VonC

答えて

8

アップデート2016年2月

PR 19891 "Enable cross-platforms login to Registry"

がドッキングウィンドウのログイン用のデーモンに定義されたレジストリURLを使って問題を修正することになっています。

これにより、Linuxデーモンと対話するWindowsクライアントは、Windows固有のレジストリエンドポイントではなく、デフォルトのレジストリエンドポイントを適切に使用できます。

それは


これは私がいることを検出しましたソースコードのいくつかの分析の後の両方docker/docker issue 15612docker/docker issue 18019

で報告された(?多分ドッカ1.10用)commit 19eaa71でありますWindowsとUNIXには異なるレジストリURLがあります。

、WindowsのURLはコメントでrecent PR 15417から来ている:

// Currently it is a TEMPORARY link that allows Microsoft to continue 
// development of Docker Engine for Windows. 

だから、このURLがない可能性がありあなたが非常に最近のWindows Server 2016上にいない限り)


含まdocker/hub-feedback issues 473でこの問題を回避する、があるようです:

  • をドッキングウィンドウのIOのデフォルトのインデックスのレジストリを指定して、

    以前で作成されたconfig.jsonファイルを変更
    docker login --username=myuser --password=mypassword --email=myemail https://index.docker.io/v1/ 
    WARNING: login credentials saved in C:\Users\myuser\.docker\config.json 
    Login Succeeded 
    
  • ステップ1 registry-winindex.docker.ioと同じ資格情報を追加するには、

config.json:その後

{ 
    "auths": { 
     "https://index.docker.io/v1/": { 
      "auth": "myhash", 
      "email": "myemail" 
     }, 
     "https://registry-win-tp3.docker.io/v1/": { 
      "auth": "myhash", 
      "email": "mydomain"   
     } 
    } 
} 

docker push index.docker.io/myuser/myrepo:latestは、作業を行います。

+0

徹底的な回答と回避策をお寄せいただきありがとうございます!私のためにうまくいった! – Nejuf

関連する問題