はじめに
この実験では、docker version
コマンドを使用して Docker Desktop モジュールを一覧表示する方法を学びます。すべてのモジュールを表示する方法、JSON 形式で出力を表示する方法、モジュール ID のみを抽出する方法など、さまざまな方法を探求します。このハンズオン演習を通じて、Docker インストールの構成要素とそれらに関する情報を取得する方法を理解できるようになります。
💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください
この実験では、docker version
コマンドを使用して Docker Desktop モジュールを一覧表示する方法を学びます。すべてのモジュールを表示する方法、JSON 形式で出力を表示する方法、モジュール ID のみを抽出する方法など、さまざまな方法を探求します。このハンズオン演習を通じて、Docker インストールの構成要素とそれらに関する情報を取得する方法を理解できるようになります。
このステップでは、docker version
コマンドを使用して Docker Desktop のすべてのモジュールを一覧表示する方法を学びます。docker version
コマンドは、Docker インストールに関する詳細情報(クライアントとサーバーコンポーネント、Docker Desktop インストールに含まれるモジュールなど)を提供します。
Docker Desktop のすべてのモジュールを一覧表示するには、ターミナルを開き、次のコマンドを実行します:
docker version
このコマンドを実行すると、Docker インストールに関する多くの情報が出力されます。Client
やServer
といったセクションを探してください。これらのセクション内に、さまざまなコンポーネントとモジュールの詳細情報が記載されています。
例えば、出力は次のようになります(正確な出力は、Docker のバージョンとインストール環境によって異なります):
Client: Docker Engine - Community
Version: 20.10.21
API version: 1.41
Go version: go1.16.15
Git commit: f2213a1
Built: Thu Oct 27 00:18:36 2022
OS/Arch: linux/amd64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.21
API version: 1.41 (minimum version 1.12)
Go version: go1.16.15
Git commit: 3056e8c
Built: Thu Oct 27 00:17:23 2022
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.8
GitCommit: 9cd358bba7fd9c7bb19904ba6d2f58fd60b1ca2b
runc:
Version: 1.1.4
GitCommit: v1.1.4-0-g5fd4c4d
docker-init:
Version: 0.19.0
GitCommit: de40ad0
この出力では、Docker Engine、containerd、runc、docker-init に関する情報を確認できます。これらは Docker 環境を構成する主要なモジュールです。docker version
コマンドは、Docker インストールのさまざまなコンポーネントとそのバージョンを理解するのに役立つツールです。
前のステップでは、docker version
コマンドを使用して Docker Desktop モジュールを一覧表示しました。デフォルトの出力は人間が読みやすい形式ですが、スクリプト処理やさらなる加工のために、JSON のような構造化された形式で出力が必要になる場合があります。
docker version
コマンドは、Go の text/template パッケージを使用して出力形式を指定できる--format
フラグをサポートしています。JSON 形式で出力するには、json .
テンプレートを使用します。
ターミナルで次のコマンドを実行してください:
docker version --format '{{json .}}'
このコマンドはdocker version
と同じ情報を出力しますが、JSON オブジェクトとしてフォーマットされます。{{json .}}
の部分は、Docker に対して出力全体 (.
) を JSON としてフォーマットするよう指示するテンプレートです。
出力は次のような 1 行の JSON データになります(読みやすく整形済み):
{
"Client": {
"Version": "20.10.21",
"ApiVersion": "1.41",
"GoVersion": "go1.16.15",
"GitCommit": "f2213a1",
"Built": "Thu Oct 27 00:18:36 2022",
"OsArch": "linux/amd64",
"Context": "default",
"Experimental": true
},
"Server": {
"Engine": {
"Version": "20.10.21",
"ApiVersion": "1.41",
"MinAPIVersion": "1.12",
"GoVersion": "go1.16.15",
"GitCommit": "3056e8c",
"Built": "Thu Oct 27 00:17:23 2022",
"OsArch": "linux/amd64",
"Experimental": false
},
"Containerd": {
"Version": "1.6.8",
"GitCommit": "9cd358bba7fd9c7bb19904ba6d2f58fd60b1ca2b"
},
"Runc": {
"Version": "1.1.4",
"GitCommit": "v1.1.4-0-g5fd4c4d"
},
"DockerInit": {
"Version": "0.19.0",
"GitCommit": "de40ad0"
}
}
}
この JSON 出力には、デフォルト出力と同じ情報が含まれていますが、プログラムが解析しやすい構造化された形式になっています。これは特に、docker version
の出力から特定の情報をスクリプトで抽出したい場合に便利です。
前のステップでは、Docker Desktop モジュールをすべて一覧表示する方法と、出力を JSON 形式でフォーマットする方法を学びました。ここでは、モジュールの Git コミット ID など特定の情報のみを抽出する方法を探ってみましょう。これは、スクリプトや自動化のために特定のデータのみが必要な場合に便利です。
ここでも--format
フラグとカスタムテンプレートを使用して実現できます。前のステップの JSON 出力を確認すると、Git コミット ID はServer.Engine.GitCommit
、Server.Containerd.GitCommit
、Server.Runc.GitCommit
、Server.DockerInit.GitCommit
に配置されていることがわかります。
これらの特定のフィールドを抽出するテンプレートを構築できます。ターミナルで次のコマンドを実行してください:
docker version --format 'Engine GitCommit: {{.Server.Engine.GitCommit}}\nContainerd GitCommit: {{.Server.Containerd.GitCommit}}\nRunc GitCommit: {{.Server.Runc.GitCommit}}\nDockerInit GitCommit: {{.Server.DockerInit.GitCommit}}'
テンプレートを分解してみましょう:
Engine GitCommit: {{.Server.Engine.GitCommit}}
: Server
オブジェクト内のEngine
オブジェクトからGitCommit
値を抽出します\n
: 各モジュールの出力を区切るための改行文字を追加しますContainerd GitCommit: {{.Server.Containerd.GitCommit}}
: containerd のGitCommit
を抽出しますRunc GitCommit: {{.Server.Runc.GitCommit}}
: runc のGitCommit
を抽出しますDockerInit GitCommit: {{.Server.DockerInit.GitCommit}}
: docker-init のGitCommit
を抽出します出力は、指定された各モジュールの Git コミット ID を表示します。例:
Engine GitCommit: 3056e8c
Containerd GitCommit: 9cd358bba7fd9c7bb19904ba6d2f58fd60b1ca2b
Runc GitCommit: v1.1.4-0-g5fd4c4d
DockerInit GitCommit: de40ad0
これは、Docker コマンドから特定のデータを抽出するための--format
フラグと Go テンプレートの強力な機能を示しています。docker version
出力で利用可能な任意のフィールドを抽出するようにテンプレートをカスタマイズできます。
この実験では、docker version
コマンドを使用して Docker Desktop モジュールを一覧表示する方法を学びました。Docker Engine、containerd、runc、docker-init などの Docker インストールのさまざまなコンポーネントとそのバージョンに関する貴重な情報を提供する、すべてのモジュールとその詳細を表示する方法を探りました。
また、プログラムによる処理や他のツールとの統合に役立つ、JSON 形式で Docker Desktop モジュールを一覧表示する方法も学びました。最後に、Docker Desktop モジュールの ID のみを一覧表示する方法を説明し、迅速な識別のための簡潔な出力を提供しました。