Docker Desktop の状態を確認する docker info コマンドの使い方

DockerDockerBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、docker infoコマンドを使用して Docker Desktop のインストール状態を確認する方法を学びます。2 つの異なる出力形式(デフォルトの人間が読みやすい形式と、スクリプトや自動化に最適な JSON 形式)について探求します。

ハンズオン形式のステップを通じて、docker infoコマンドを実行し、コンテナやイメージの数、サーバーバージョン、ストレージドライバ、その他のシステム設定など、Docker 環境に関する詳細情報を取得します。デフォルト形式が簡潔な概要を提供する方法と、JSON 形式が Docker の状態情報をプログラムで処理しやすくする方法を確認します。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/SystemManagementGroup(["System Management"]) docker/SystemManagementGroup -.-> docker/info("Display System-Wide Information") subgraph Lab Skills docker/info -.-> lab-555149{{"Docker Desktop の状態を確認する docker info コマンドの使い方"}} end

デフォルト形式で Docker Desktop の状態を確認する

このステップでは、docker infoコマンドを使用して Docker デーモンの状態をデフォルト出力形式で確認する方法を学びます。docker infoコマンドは、コンテナ数、イメージ数、ストレージドライバ、その他のシステムレベルの情報など、Docker インストールに関する詳細情報を提供します。

まず、LabEx VM 環境でターミナルを開きます。タスクバーのターミナルアイコンをクリックするか、Ctrl + Alt + Tを押すことで開くことができます。

次に、以下のコマンドを実行して Docker 情報をデフォルト形式で表示します:

docker info

このコマンドは、Docker 環境に関する多くの情報を出力します。出力をスクロールして、Docker バージョン、実行中および停止中のコンテナ数、イメージ数、使用中のストレージドライバ、各種システム設定などの詳細を確認してください。

例えば、出力には以下のような行が表示されるはずです:

Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 0
Server Version: 20.10.21
Storage Driver: overlay2
...

このデフォルト形式は、Docker デーモンの状態と設定を素早く把握するのに便利です。

JSON 形式で Docker Desktop の状態を確認する

前のステップでは、docker infoのデフォルト出力形式を使用して Docker デーモンの状態を確認しました。デフォルト形式は人間が読みやすいですが、プログラム処理には適していません。このステップでは、スクリプトや自動化に適した JSON 形式で Docker 情報を取得する方法を学びます。

JSON 形式で出力を取得するには、docker infoコマンドに--formatフラグを追加し、形式をjsonとして指定します。

ターミナルで以下のコマンドを実行してください:

docker info --format '{{json .}}'

このコマンドを分解してみましょう:

  • docker info: Docker システム情報を取得する基本コマンド
  • --format '{{json .}}': 出力形式を指定するフラグ。'{{json .}}'は Go テンプレート構文を使用しています。.docker infoが返すデータ構造全体を表し、{{json .}}はこの構造を JSON 文字列としてフォーマットします。

コマンドを実行すると、前回と同じ情報が単一の有効な JSON オブジェクトとして表示されます。出力は以下のようになります(正確な内容は Docker 環境によって異なります):

{
  "ID": "...",
  "Containers": 0,
  "ContainersRunning": 0,
  "ContainersPaused": 0,
  "ContainersStopped": 0,
  "Images": 0,
  "Driver": "overlay2",
  "SystemStatus": null,
  "Plugins": {
    "Volume": ["local"],
    "Network": ["bridge", "host", "ipvlan", "macvlan", "null", "overlay"],
    "Authorization": null,
    "Log": [
      "awslogs",
      "fluentd",
      "gcplogs",
      "gelf",
      "journald",
      "json-file",
      "local",
      "logentries",
      "splunk",
      "syslog"
    ]
  },
  "MemoryLimit": true,
  "SwapLimit": true,
  "KernelMemory": true,
  "CpuCfsPeriod": true,
  "CpuCfsQuota": true,
  "CpuShares": true,
  "CpuSet": true,
  "PidsLimit": true,
  "OomKillDisable": true,
  "IPv4Forwarding": true,
  "BridgeNfIptables": true,
  "BridgeNfIp6tables": true,
  "Debug": false,
  "NFd": -1,
  "OomScoreAdj": -1,
  "Goroutines": -1,
  "SystemTime": "...",
  "LoggingDriver": "json-file",
  "CgroupDriver": "cgroupfs",
  "CgroupVersion": "1",
  "NEventsListener": -1,
  "KernelVersion": "...",
  "OperatingSystem": "...",
  "OSType": "linux",
  "Architecture": "x86_64",
  "IndexServerAddress": "https://index.docker.io/v1/",
  "RegistryConfig": {
    "AllowNondistributableArtifactsAfterDate": "2020-12-25T00:00:00Z",
    "InsecureRegistryCIDRs": ["127.0.0.0/8"],
    "IndexConfigs": {
      "docker.io": {
        "Name": "docker.io",
        "Mirrors": [],
        "Secure": true,
        "Official": true
      }
    },
    "Mirrors": []
  },
  "NCPU": -1,
  "MemTotal": -1,
  "GenericResources": null,
  "DockerRootDir": "/var/lib/docker",
  "HttpProxy": "",
  "HttpsProxy": "",
  "NoProxy": "",
  "ExperimentalBuild": false,
  "LiveRestoreEnabled": false,
  "Runtimes": { "runc": { "path": "runc" } },
  "DefaultRuntime": "runc",
  "Swarm": {
    "NodeID": "",
    "LocalNodeState": "inactive",
    "ControlAvailable": false,
    "Error": "",
    "RemoteManagers": null
  },
  "ContainerdCommit": { "ID": "...", "Expected": "..." },
  "RuncCommit": { "ID": "...", "Expected": "..." },
  "InitCommit": { "ID": "...", "Expected": "..." },
  "SecurityOptions": ["apparmor", "seccomp"],
  "ProductLicense": "",
  "DefaultAddressPools": null,
  "Warnings": null
}

この JSON 出力はスクリプト言語や他のツールで簡単に解析できるため、Docker 関連のタスクを自動化するのに非常に便利です。

まとめ

この実験では、docker infoコマンドを使用して Docker デーモンの状態を確認する方法を学びました。2 つの異なる出力形式、デフォルトの人間が読みやすい形式と JSON 形式について検討しました。

最初にdocker infoを使用して、コンテナやイメージの数、サーバーバージョン、ストレージドライバなど、Docker 環境の概要を素早く確認しました。その後、docker info--format '{{json .}}'フラグを追加して同じ情報を構造化された JSON 形式で取得する方法を学びました。この形式はスクリプト作成や自動化により適しています。