Help us understand the problem. What is going on with this article?

Windows で docker login / docker push に認証エラーで失敗する

More than 3 years have passed since last update.

はじめに

Windows 環境で docker logindocker push しようとしたらこんなエラーが出ました。

$ docker login
Username: myusername
Password:
Email: my@mail.address
Error response from daemon: Unexpected status code [403] : <html><body><h1>403 Forbidden</h1>
Request forbidden by administrative rules.
</body></html>

はじめは認証エラーなのでパスワードなどが間違っているのかと思ったのですが、調べてみたところそもそも接続先が間違っているようです。

対策

こちらの feedback に解決方法が書いてありました。
DockerToolbox in windows Login/push doesnt works properly (With a workaround) · Issue #473 · docker/hub-feedback

手元で試した感じだと windows 用のレジストリである https://registry-win-tp3.docker.io/ が v2 の API に対応していないようで、デフォルトの接続先のままだとうまく動かないということみたいです。

まず、ログインは docker.io を明示的に指定します。

$ docker login docker.io
Username: myusername
Password:
Email: my@mail.address
WARNING: login credentials saved in C:\Users\MyUserName\.docker\config.json
Login Succeeded

そうすると上記の config.json に以下のような認証情報が出力されます。

{
    "auths": {
        "docker.io": {
            "auth": "TOKEN",
            "email": "my@mail.address"
        }
    }
}

それをコピーして push 先となる https://registry-win-tp3.docker.io/v1/ にも適用させます。どちらも同じトークンで大丈夫です。("docker.io" 最後の , を忘れずに)

{
    "auths": {
        "docker.io": {
            "auth": "TOKEN",
            "email": "my@mail.address"
        },
        "https://registry-win-tp3.docker.io/v1/": {
            "auth": "TOKEN",
            "email": "my@mail.address"
        }
    }
}

これで docker push chiepomme/chiepomme のようにレジストリ指定なしでも push できました。

おわりに

Windows 環境での Docker 罠が多すぎてやばい。
この記事は @chiepomme Advent Calender 2015 10日目です。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした