Zugriff auf Docker-Image-Beschriftungen mit Punkten in Namen
Der Befehl „inspect“ von Docker bietet eine praktische Möglichkeit, die Beschriftungen eines Container-Images abzurufen. Das Extrahieren von Beschriftungen mit Punkten im Namen mithilfe der Option --format und Go-Vorlagen kann sich jedoch als schwierig erweisen.
Problem:
Das folgende Docker-Image definiert zwei Beschriftungen:
FROM busybox LABEL foo="bar" LABEL com.wherever.foo="bang"
Verwenden des Befehls inspect mit dem --format Option:
$ docker inspect -f '{{ .Config.Labels.foo }}' foo
gibt den Wert für die Bezeichnung „foo“ korrekt zurück. Der Versuch, auf das Etikett mit einem Punkt im Namen zuzugreifen:
$ docker inspect -f '{{ .Config.Labels.com.wherever.foo }}' foo
führt jedoch zu „
Lösung:
Um Etiketten mit Punkten im Namen abzurufen, verwenden Sie die Indexfunktion in der Go-Vorlage:
$ docker inspect -f '{{ index .Config.Labels "com.wherever.foo" }}' foo
Dies wird ausgegeben der gewünschte Beschriftungswert, „bang“.
Die Indexfunktion sucht nach beliebigen Zeichenfolgen in der Karte und gibt den entsprechenden Wert zurück, wenn er gefunden wird. Durch Angabe des Labelnamens als zweiten Parameter ruft die Funktion den zugehörigen Wert aus der Labels-Map des Config-Objekts ab.
Das obige ist der detaillierte Inhalt vonWie greife ich mit dem Befehl „inspect' auf Docker-Image-Beschriftungen mit Punkten im Namen zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!