概要

このページに含む情報:

  • Docker Desktop で問題発生時、診断とトラブルシュートの仕方

  • ログの確認

  • 共通する問題の回避策を見つける

トラブルシュートのメニュー

Troubleshoot (トラブルシュート)に移動するには、以下のいずれかです:

  • Docker メニュー whale から、 Troubleshoot を選ぶ

  • Docker ダッシュボードから Troubleshoot アイコンを選ぶ

Docker Desktop のトラブルシュート

トラブルシュートのページには、以下のオプションを含みます。

  • Restart Docker Desktop (Docker Desktop の再起動):選択すると、Docker Desktop を再起動します。

  • Support :有償 Docker サブスクリプション利用者は、このオプションを使ってサポートリクエストを送信できます。他の利用者がこのオプションを使うと、Docker Desktop 上のあらゆる問題を診断します。診断に関する詳細情報は、 mac-diagnose-and-feedback をご覧ください。

  • Reset Kubernetes cluster (Kubernetes クラスタのリセット):このオプションを選択すると、全てのスタックと Kubernetes リソースを削除します。詳しい情報は Kubernetes をご覧ください。

  • Clean / Purge data (データ除去 / 削除):設定などを初期値のデフォルトに戻さず、全ての Docker データをリセットします。このオプションを選択した結果、既存の設定は消滅します。

  • Reset to factory defaults (初期値のデフォルトにリセット):このオプションを選択すると、Docker Desktop の全てのオプションを初期値にリセットし、Docker Desktop が始めてインストールされたのと同じ状態にします。

Mac ユーザの場合、Docker Desktop をシステム上から Uninstall (アンインストール)するオプションもあります。

診断

アプリから診断

  1. Troubleshoot から Get support を選びます。これはアプリ内の Support ページを開き、診断情報の収集を開始します。

    診断とフィードバック
  1. 診断情報の収集が終われば、 Upload to get a Diagnostic ID をクリックします。

  1. 診断情報のアップロードが完了すると、 Docker Desktop は Diagnostic ID(診断 ID)を表示します。この ID をコピーします。

  1. 有償 Docker サブスクリプションを持っている場合は、 Contact Support をクリック。これは Docker Desktop サポート フォームを開きます。必要な情報を入力し、Diagnostics ID フィールドには先ほどコピーした ID を入れます。

  1. Docker Desktop のサポートをリクエストするには Submit をクリックします。

    注釈

    サポートフォームにアクセスするには、Docker Desktop に Pro、Team、Business いずれかの認証賞情報でサインインしている必要があります。Docker Desktop サポートで扱う情報については、 サポート をご覧ください。

  1. 有償 Docker サブスクリプションが無い場合、既存のアカウントをアップグレードするために Upgrade to benefit from Docker Support がクリックできます。あるいは、 Report a Bug をクリックし、GitHub に新しい Docker Desktop の issue を開きます。必要情報を入力し、先ほどコピーした診断 ID を追加します。

  1. submit new issue をクリックすると新しい issue を作成します。

ターミナルから診断

Docker Desktop が起動できない状況など、場合によっては自分での診断実行が役立つ場合もあります。

まず、 com.docker.diagnose ツールを探します。通常の場所は以下の通りです:

  • Windows

    $ C:\Program Files\Docker\Docker\resources\com.docker.diagnose.exe
    
  • Mac

    $ /Applications/Docker.app/Contents/MacOS/com.docker.diagnose
    
  • Linux

    $ /opt/docker-desktop/bin/com.docker.diagnose
    

診断の作成とアップロードをするには、次のコマンドを実行します:

$ <tool location> gather -upload

診断が終了したら、ターミナルには診断 ID を含む出力があります。診断 ID にはユーザ ID とタイムスタンプも組み込まれています。ユーザ ID だけでなく、診断 ID 全体が必要になります。

診断ファイルの内容を表示するには、次のように実行します:

  • Mac

    $ open /tmp/BE9AFAAF-F68B-41D0-9D12-84760E6B8740/20190905152051.zip
    
  • Linux

    $ unzip –l /tmp/BE9AFAAF-F68B-41D0-9D12-84760E6B8740/20190905152051.zip
    

有償 Docker サブスクリプションを持っている場合は、 Docker Desktop サポート フォームを開きます。必要な情報を入力し、Diagnostics ID フィールドには先ほどコピーした ID を入れます。Docker Desktop サポートをリクエストするには Submit をクリックします。

自己診断ツール(self-diagnose tool)

Docker Desktop には、共通する問題を確認するのに役立つ自己診断ツールが入っています。

まず、 com.docker.diagnose ツールを探します。通常の場所は以下の通りです:

  • Windows

    $ C:\Program Files\Docker\Docker\resources\com.docker.diagnose.exe
    
  • Mac

    $ /Applications/Docker.app/Contents/MacOS/com.docker.diagnose
    
  • Linux

    $ /opt/docker-desktop/bin/com.docker.diagnose
    

自己診断ツールを実行するには、次のように実行します。

$ <tool location> check

ツールはチェックの一式を実行し、それぞれのチェックごとに PASSFAIL を表示します。何らかのエラーがあれば、レポートの最後で最も関連する情報をハイライトで表示します。

それから、 GitHub で issue を作成できます。

ログの確認

診断とフィードバックオプションによるログ送信だけでなく、自分自身でログを確認できます。

Mac の場合

ターミナル上で

コマンドライン上で Docker Desktop ログのライブフロー(live flow)を表示するには、任意のシェルで以下のスクリプトを実行します。

$ pred='process matches ".*(ocker|vpnkit).*" || (process in {"taskgated-helper", "launchservicesd", "kernel"} && eventMessage contains[c] "docker")'
$ /usr/bin/log stream --style syslog --level=debug --color=always --predicate "$pred"

あるいは、直近1日のログ( 1d ) をファイルに集めるには、次の様に実行します。

$ /usr/bin/log show --debug --info --style syslog --last 1d --predicate "$pred" >/tmp/logs.txt

アプリケーション上で

Mac には "Console" という内蔵ログビュアーがあります。これを使って Docker のログを確認できます。

Console は /Applications/Utilities にあります。これはスポットライト検索で見つけられます。

Docker アプリのログ・メッセージを読むには、 Console ウインドウの検索バーで docker と入力し、エンターを押します。それから ANY を選択肢、ドロップダウンリストを展開し、その横にある docker と検索語を入力し、 Press を押します。

Console ログクエリを使ってログを検索でき、様々な方法で結果をフィルだしたり、レポートを作成したりできます。

Lnux の場合

以下のコマンドを実行し、 Docker Desktop のログにアクセスできます。

$ journalctl --user --unit=docker-desktop

また、 Docker Desktop に含まれる内部コンポーネントに関するログは、 $HOME/.docker/desktop/log/ にあります。

Docker デーモンのログを表示

Docker デーモンのログを表示する方法を知るには、 ログを読む をご覧ください。