このトピックでは、dockerログイン、dockerプッシュ、およびdockerプルのエラーに関するよくある質問に対する回答を提供します。
Dockerログインエラー
docker loginコマンドが失敗するのはなぜですか?
docker loginコマンドを実行してレジストリにログインできない場合は、次の手順を実行して問題をトラブルシューティングします。
使用するパスワードがレジストリのシークレットであり、Alibaba Cloudアカウントのパスワードではないことを確認してください。 レジストリのシークレットを設定または変更するには、Container registryコンソールを使用する必要があります。 手順:
Container Registryコンソールにログインします。
[インスタンス] ページで、インスタンスのカードをクリックして、インスタンスの詳細ページに移動します。
左側のナビゲーションウィンドウで、 を選択します。
[アクセス資格情報] ページで、右上隅の [パスワードの設定] をクリックします。
[パスワードの設定] ダイアログボックスで、レジストリのシークレットを設定し、[確認] をクリックします。
必ずsudo docker loginコマンドを使用してください。 sudo docker loginコマンドを実行した後、最初に入力する必要があるパスワードは、Linuxユーザーアカウントのパスワードです。 レジストリのシークレットを入力すると、ログオンに失敗します。
システムが「再試行」を要求し、正しいパスワードを入力しなかった後に最大3回試行できる場合、これはLinuxユーザーアカウントのパスワードを入力する必要があることを示しています。 Dockerクライアントが終了し、間違ったパスワードを入力した後に次のエラーが表示される場合は、レジストリのシークレットを入力する必要があることを示します。
Error response from daemon: Get https://registry.cn-hangzhou.aliyuncs.com/v2/: unauthorized: authentication requiredアカウントがRAM (Resource Access Management) ユーザーの場合、Alibaba Cloudアカウントで設定されているパスワードを使用しないでください。 RAMユーザーとしてContainer Registryコンソールにログインし、レジストリにシークレットを設定してから、ログオンにシークレットを使用する必要があります。 詳細については、「Container Registry Enterprise Editionインスタンスのアクセス資格情報の設定」をご参照ください。
docker loginコマンドがタイムアウトするのはなぜですか?
ネットワークが期待どおりに実行されているかどうかを確認します。 ネットワークが期待どおりに実行されていない場合、Container Registryインスタンスにアクセスできません。 その結果、docker loginコマンドがタイムアウトします。
dockerプルエラー
docker pullコマンドが失敗し、Error: image xxx not foundメッセージが表示されるのはなぜですか?
docker pullコマンドを実行すると、error: image xxx not foundというエラーが返されます。
上記のエラーは、イメージのプルに失敗したことを示しています。 問題をトラブルシューティングするには、次の手順を実行します。
画像のURLを確認します。
特にパブリックイメージをプルする場合は、入力したイメージのURLが正しいことを確認してください。
画像のURLとタグは、Container Registryコンソールで表示できます。
プライベートリポジトリからイメージを取得する場合は、プライベートリポジトリのログインステータスを確認します。
cat ~/.docker/config.jsonコマンドを実行して、アカウントがログオンしているレジストリのドメイン名を表示します。 イメージをプルするレジストリのドメイン名がコマンド出力に存在するかどうかを確認します。イメージをプルするレジストリのドメイン名がコマンド出力に存在しない場合は、
docker loginコマンドを実行してレジストリにログインします。
アカウントの権限を確認します。
使用するアカウントに、画像にアクセスまたはプルする権限があることを確認します。 RAMユーザーを使用する場合、デフォルトでは、アカウントに関連する権限がない可能性があります。
リポジトリのアクセス制御を設定することで、RAMユーザーに関連する権限を付与できます。 詳細については、「リポジトリのアクセス制御」をご参照ください。
まれに、次のエラーが返されます。これは、プルされたブロックファイルが検証に失敗したことを示します。 このエラーが発生した場合は、もう一度お試しください。
エラー: ファイルシステム層の検証に失敗しました
Container Registry Enterprise Editionから匿名ユーザーとしてイメージをプルできないのはなぜですか?
匿名ユーザーとして画像をプルするには、[概要] ページの右側にある [インスタンス設定] セクションに移動し、[匿名ユーザーからプル] をオンにする必要があります。
dockerプッシュエラー
docker pushコマンドが失敗し、リソースへのアクセスが拒否されたメッセージが表示されるのはなぜですか。
上記のエラーは、イメージのプッシュに失敗したことを示しています。 トラブルシューティングの手順は、docker pullコマンドの実行に失敗した場合のトラブルシューティングの手順と同様です。 唯一の違いは、ログオンアカウントにはより高度な権限が必要なことです。
docker pushコマンドが失敗するのはなぜですか?
イメージをプッシュする前に、リポジトリが作成されていることを確認します。 リポジトリが存在しない場合は、システムが名前空間にリポジトリを自動的に作成できるようにしてください。