Während die Option --pretty
eine für Menschen lesbare Zusammenfassung bietet, ermöglicht die Option --format
eine feingranulierte Kontrolle über das Ausgabeformat mithilfe der Go-Template-Syntax. Dies ist unglaublich leistungsstark, um bestimmte Informationen zu extrahieren oder die Ausgabe für Skripte oder Berichte zu formatieren.
Die Go-Template-Syntax ermöglicht es Ihnen, auf Felder innerhalb der JSON-Ausgabe des inspect
-Befehls zuzugreifen. Beispielsweise können Sie eine Formatzeichenfolge wie {{.ID}} {{.Spec.Name}}
verwenden, um nur die Dienst-ID und den Namen zu erhalten.
Lassen Sie uns versuchen, den my-web-service
zu inspizieren und die Ausgabe so zu formatieren, dass nur die Dienst-ID und der Name angezeigt werden.
docker service inspect --format '{{.ID}} {{.Spec.Name}}' my-web-service
Sie sollten eine Ausgabe ähnlich der folgenden sehen:
<SERVICE_ID> my-web-service
wobei <SERVICE_ID>
die tatsächliche ID Ihres Dienstes ist.
Sie können auf verschachtelte Felder mithilfe von Punkten zugreifen. Beispielsweise würden Sie {{.Spec.TaskTemplate.ContainerSpec.Image}}
verwenden, um den Namen des Images zu erhalten.
Lassen Sie uns ein weiteres Beispiel versuchen, um den Dienstnamen und das von ihm verwendete Image zu erhalten.
docker service inspect --format 'Service Name: {{.Spec.Name}}, Image: {{.Spec.TaskTemplate.ContainerSpec.Image}}' my-web-service
Die Ausgabe wird wie folgt lauten:
Service Name: my-web-service, Image: nginx
Die Option --format
ist sehr flexibel und ermöglicht es Ihnen, die Ausgabe an Ihre spezifischen Anforderungen anzupassen. Sie können die vollständige JSON-Ausgabe (ohne --pretty
oder --format
) untersuchen, um die Struktur zu verstehen und die Felder zu identifizieren, die Sie extrahieren möchten.