メニュー
Amazon Elastic Container Service
開発者ガイド (API バージョン 2014-11-13)

Docker デバッグ出力の有効化

Docker コンテナまたはイメージに問題がある場合は、Docker デーモンに対してデバッグモードを有効にすることができます。デバッグを有効にすると、デーモンからより詳細な出力を得られます。この情報を使用して、コンテナまたはイメージに問題がある理由の詳細を調べることができます。

Docker デバッグモードを有効にすると、Amazon ECR などのコンテナレジストリから送信されたエラーメッセージを取得するために特に役立ちます。多くの場合、これらのエラーメッセージを表示するには、デバッグモードを有効にする以外に方法はありません。

重要

この手順は、Amazon ECS 最適化 AMI 用に書かれています。他のオペレーティングシステム用の手順については、Docker ドキュメントの「デバッグの有効化」と「systemd による Docker の制御と設定」を参照してください。

Amazon ECS 最適化 AMI で Docker デーモンのデバッグモードを有効にするには

  1. コンテナインスタンスに接続します。詳細については、「コンテナインスタンスへの接続」を参照してください。

  2. Docker options ファイルを vi などのテキストエディターで開きます。Amazon ECS 最適化 AMI では、Docker options ファイルは /etc/sysconfig/docker にあります。

  3. Docker options ステートメントを見つけ、引用符の中の文字列に -D オプションを追加します。

    注記

    Docker options ステートメントが # で始まっている場合、その文字を削除してそのステートメントをコメント解除し、オプションを有効にします。

    Amazon ECS 最適化 AMI では、Docker options ステートメントは OPTIONS と呼ばれます。以下に例を示します。

    # Additional startup options for the Docker daemon, for example: # OPTIONS="--ip-forward=true --iptables=true" # By default we limit the number of open files per container OPTIONS="-D --default-ulimit nofile=1024:4096"
  4. ファイルを保存し、テキストエディタを終了します。

  5. Docker デーモンを再び開始します。

    sudo service docker restart

    出力:

    Stopping docker: [ OK ] Starting docker: . [ OK ]
  6. Amazon ECS エージェントを再び開始します。

    sudo start ecs

これで、Docker ログにはより詳細な出力が表示されます。(例:

time="2015-12-30T21:48:21.907640838Z" level=debug msg="Unexpected response from server: \"{\\\"errors\\\":[{\\\"code\\\":\\\"DENIED\\\",\\\"message\\\":\\\"User: arn:aws:sts::1111:assumed-role/ecrReadOnly/i-abcdefg is not authorized to perform: ecr:InitiateLayerUpload on resource: arn:aws:ecr:us-east-1:1111:repository/nginx_test\\\"}]}\\n\" http.Header{\"Connection\":[]string{\"keep-alive\"}, \"Content-Type\":[]string{\"application/json; charset=utf-8\"}, \"Date\":[]string{\"Wed, 30 Dec 2015 21:48:21 GMT\"}, \"Docker-Distribution-Api-Version\":[]string{\"registry/2.0\"}, \"Content-Length\":[]string{\"235\"}}"