[Docker] pullができなくなったときの対処法

2019年4月19日

テクノロジー

月に一度ぐらいDockerのアップデートが報告されて、いつも使っているMacにインストールしてあるDockerDesktopも更新されています。 WEB開発を行う時に、Dockerがインストールされているだけで、簡単にWEBサーバー環境を構築することができるので、もはや必須アイテムになってしまったDockerですが、少し前から「pull」操作を行なうとエラーが出るようになってしまいました。 そんなDockerでpullできなくなった時の対策がわかったので、メモしておきます。

pullエラーの詳細

基本的にはsearchコマンドで検索して、ヒットしたイメージをpullするワケですが、以下のような状態になってしまいました。 ちなみに、検索しているイメージは「EC-cube」の案件の為、検索1番目をpullしようとしています。 $ docker search eccube NAME DESCRIPTION STARS OFFICIAL AUTOMATED eccube/mysql51 MySQL 5.1 for EC-CUBE Codeception. 2 [OK] eccube/postgres Docker image for PostgreSQL extended locale … 1 [OK] eccube/php7-ext-codeception Docker image for Codeception with additional… 1 [OK] eccube/php-ext-apache Docker image for php:*-apache with additiona… 1 [OK] eccube/postgres84 PostgreSQL 8.4 for EC-CUBE Codeception. 1 [OK] eccube/upgrade-fixer EC-CUBE Upgrade Fixer 1 [OK] r00tapple/eccube 0 ebusinessdocker/eccube 0 cyberblack/eccube 0 ouyou/eccube3.0.0-php7v1 0 nanasess/eccube-2_17-php-fpm EC-CUBE2.17 on php:7.2-fpm-stretch 0 [OK] ouyou/eccube3.0.10-php7v1 0 eccube/mock-package-api Mock Package API 0 rdyayo/eccube 0 tomckysan/eccube-dev 0 matsubo/eccube eccube test image 0 skazuki/debian-php-apache-eccube Lightweight ec-cube docker image on debian 0 tkmatsuo/eccube2 0 tabenguyen/eccube4-apache 0 rkmix893/eccube Installed EC-CUBE Image 0 ebusinessdocker/eccube_plugin_updater 0 kicompany/eccube3 0 bfstaff02/eccube 0 tkmatsuo/eccube 0 tabenguyen/eccube4-mysql 0 $ docker pull eccube/mysql51 Using default tag: latest Error response from daemon: Get https://registry-1.docker.io/v2/eccube/mysql51/manifests/latest: unauthorized: incorrect username or password なんと「incorrect username or password」と言われていますね。「ユーザーネームかパスワードが違います」とのことですが、インストールしているアプリにはちゃんとsininしている状態です。

原因はメールアドレスログイン

色々調べてわかったのは、アプリケーションでのログインはメールアドレスログインではなく、usernameログインでないといけないようです。 システム的にはほぼバグですが、とりあえずシステムルールに従いusernameでログインしてみたところ、問題なくpullすることができました。 $ docker pull eccube/mysql51 Using default tag: latest latest: Pulling from eccube/mysql51 32c4f4fef1c6: Pull complete 88feb465cbe2: Pull complete 7bcc9f55ae5e: Pull complete d867d6a7dfe7: Pull complete a1873816e708: Pull complete bfde5fb9e72c: Pull complete 62ef7ea16195: Pull complete aa5687cf5cf6: Pull complete 6499ace990f2: Pull complete a7e6e7062f8c: Pull complete Digest: sha256:9f7e3fe204c677461641dcc11121283545a499e27f1d50b34f14f04b5ca24ff0 Status: Downloaded newer image for eccube/mysql51:latest

アプリケーションのログイン方法

ログイン方法が分からないという人のために簡単にやり方を説明しておきます。 ※Macアプリケーションが対象です。 インストールされているdockerは、デフォルトではfinderのヘッダメニューにアイコンが表示されているはずです。 次に「Sign in」を選択します。 表示されたダイアログに、usernameと登録したパスワードを入力してログイン。 メールアドレスでもログインできてしまいますが、登録してあるusernameでログインしないとダメです。 最後に、ログインされていることを確認して終了です。

usernameが分からなくなった人

Dockerのアカウント登録はしてあるものの、usernameがわからない人は、WEBページのサインインページへ移動して、「Forgot Password?」リンクをクリックして、メールでパスワード再発行を受け取りましょう。 http://hub.docker.com/sso/start 受け取った、メールの中に、usernameが書かれているので、それでログインすることができるはずです。 ※赤い箇所に書かれています。 もしパスワードを忘れてしまっている人は、そのままパスワード再発行を行なうこともできます。 いつか将来修正されるかもしれませんが、「Dockerはメールではなく登録ユーザー名でのログイン」を徹底しましょう!!!

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。