翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
以下の情報は、Docker コンテナ AWS IoT Greengrass で を実行する際の問題のトラブルシューティングや、Docker コンテナ AWS IoT Greengrass での に関する問題のデバッグに役立ちます。
Docker コンテナを実行する際に生じる問題のトラブルシューティング
次の情報は、Docker コンテナ AWS IoT Greengrass で を実行する際の問題のトラブルシューティングに役立ちます。
トピック
- エラー: 非TTYデバイスからインタラクティブログインを実行できません
- エラー: 不明なオプション: -no-include-email
- エラー: A firewall is blocking file Sharing between windows and the containers. (ファイアウォールが、ウィンドウとコンテナー間のファイル共有をブロックしています。)
- エラー: GetAuthorizationToken オペレーションを呼び出すときにエラー (AccessDeniedException) が発生しました: ユーザー: arn:aws:iam::account-id:user/<user-name> が実行する権限がありません: ecr:GetAuthorizationToken on リソース: *
- エラー: You have reached your pull rate limit (プルレート制限に達しました)
エラー: 非TTYデバイスからインタラクティブログインを実行できません
aws ecr get-login-password
コマンドを実行すると、このエラーが発生することがあります。 AWS CLI 最新バージョン 2 またはバージョン 1 がインストールされていることを確認します。 AWS CLI バージョン 2 を使用することをお勧めします。詳細については、AWS CLIユーザーガイドのAWS Command Line Interface のインストールを参照してください。
エラー: 不明なオプション: -no-include-email
aws ecr get-login
コマンドを実行すると、このエラーが発生することがあります。 AWS CLI 最新バージョンがインストールされていることを確認します (例: 実行: pip install awscli --upgrade --user
)。詳細については、「 AWS Command Line Interface ユーザーガイド」の「Microsoft Windows AWS Command Line Interface への のインストール」を参照してください。
エラー: A firewall is blocking file Sharing between windows and the containers. (ファイアウォールが、ウィンドウとコンテナー間のファイル共有をブロックしています。)
Windows コンピュータで Docker を実行すると、このエラーまたは Firewall Detected
メッセージが表示されることがあります。これは、仮想プライベートネットワーク (VPN) にサインインしていて、ネットワーク設定によって共有ドライブのマウントが妨げられている場合にも発生する可能性があります。このような場合は、Docker コンテナをオフにVPNして再実行します。
エラー: GetAuthorizationToken オペレーションを呼び出すときにエラー (AccessDeniedException) が発生しました: ユーザー: arn:aws:iam::account-id
:user/<user-name> が実行する権限がありません: ecr:GetAuthorizationToken on リソース: *
Amazon ECRリポジトリにアクセスするための十分なアクセス許可がない場合、 aws ecr get-login-password
コマンドの実行時にこのエラーが表示されることがあります。詳細については、「Amazon ユーザーガイド」の「Amazon ECR リポジトリポリシーの例」および「1 つの Amazon ECR リポジトリへのアクセス」を参照してください。 ECR
エラー: You have reached your pull rate limit (プルレート制限に達しました)
Docker Hub は、匿名ユーザーと無料の Docker Hub ユーザーが行うことができるプルリクエストの数を制限します。匿名ユーザーまたは無料のユーザーのプルリクエストの上限に達すると、次のいずれかのエラーが表示されます。
-
ERROR: toomanyrequests: Too Many Requests.
-
You have reached your pull rate limit.
これらのエラーを解決するには、別のプルリクエストを試行する前に数時間を置いてください。多数のプルリクエストを継続的に送信する予定がある場合は、Docker Hub ウェブサイト
Docker コンテナ AWS IoT Greengrass でのデバッグ
Docker コンテナの問題をデバッグするには、Greengrass ランタイムログを維持するか、Docker コンテナにインタラクティブシェルをアタッチすることができます。
Docker コンテナの外部で Greengrass ログを永続化する
AWS IoT Greengrass コンテナを停止したら、次のdocker cp
コマンドを使用して Greengrass ログを Docker コンテナから一時ログディレクトリにコピーできます。
docker cp
container-id
:/greengrass/v2/logs/tmp/logs
コンテナが終了または削除された後もログを保持するには、
ディレクトリをバインドマウントした後に AWS IoT Greengrass Docker コンテナを実行する必要があります。
/logs/greengrass/v2
ディレクトリをバインドマウントするには、新しい Docker AWS IoT Greengrass コンテナを実行するときに次のいずれかを実行します。
/logs/greengrass/v2
-
docker run
コマンドに-v
を含めます。/tmp/logs
:
/logs:ro/greengrass/v2
設定ファイル内の
volumes
ブロックを編集して、docker-compose up
コマンドを実行する前に次の行を含めます。volumes: -
/tmp/logs
:
/logs:ro/greengrass/v2
その後、 AWS IoT Greengrass が Docker コンテナ内で実行されている間に、ホスト
の でログをチェックして Greengrass ログを確認できます。/tmp/logs
Greengrass Docker コンテナを実行するための情報については、「手動プロビジョニングを使用して Docker で AWS IoT Greengrass を実行する」および「自動プロビジョニングを使用して Docker AWS IoT Greengrass で を実行する」を参照してください。
インタラクティブシェルを Docker コンテナにアタッチする
Docker コンテナ内でコマンドを実行するにあたり docker exec
を使用する場合、これらのコマンドは Docker ログにキャプチャされません。コマンドを Docker ログに記録すると、Greengrass Docker コンテナの状態を調査する際に役立ちます。次のいずれかを行います。
-
別のターミナルで次のコマンドを実行して、ターミナルの標準入力、出力、およびエラーを実行中のコンテナにアタッチします。これにより、現在のターミナルから Docker コンテナを表示して、制御することができます。
docker attach
container-id
-
別のターミナルで次のコマンドを実行します。これにより、コンテナがアタッチされていない場合でも、コマンドをインタラクティブモードで実行できるようになります。
docker exec -it
container-id
sh -c "command
> /proc/1/fd/1"
一般的な AWS IoT Greengrass トラブルシューティングについては、「」を参照してくださいトラブルシューティング AWS IoT Greengrass V2。