Go テンプレートを使用した検査結果のフォーマット
このステップでは、Go テンプレートを使用してdocker inspect
コマンドの出力をフォーマットする方法を学びます。これにより、詳細な JSON 出力から特定の情報を抽出し、カスタム形式で表示することが可能になります。
まず、実行状態を維持するコンテナを起動しましょう。
docker run -d --name my-templated-container ubuntu sleep infinity
次に、このコンテナを検査し、Go テンプレートを使用して IP アドレスのみを表示します。IP アドレスは検査出力のNetworkSettings.IPAddress
フィールドに含まれています。
docker inspect --format '{{.NetworkSettings.IPAddress}}' my-templated-container
このコマンドの説明:
--format '{{.NetworkSettings.IPAddress}}'
: Go テンプレートを使用したフォーマットを指定
{{...}}
: Go テンプレートのアクションを示す
.
: 検査対象のルートオブジェクト(コンテナ)を表す
NetworkSettings
: ルートオブジェクト内のNetworkSettings
フィールドにアクセス
IPAddress
: NetworkSettings
オブジェクト内のIPAddress
フィールドにアクセス
このコマンドの出力は、コンテナの IP アドレスのみになります。
Go テンプレートを使用して様々な情報を抽出できます。例えば、コンテナ名と ID を取得するには:
docker inspect --format 'Name: {{.Name}}, ID: {{.Id}}' my-templated-container
この場合、Name: /my-templated-container, ID: <container_id>
のような出力が得られます。
Go テンプレートは、条件文、ループ、関数など強力なフォーマット機能を提供しますが、この基本的な例では単純にフィールドにアクセスしています。
検査が終わったら、コンテナを停止して削除します。
docker stop my-templated-container
docker rm my-templated-container