Maison >développement back-end >Golang >Comment récupérer des étiquettes délimitées par des points dans Docker avec « docker inspect » ?

Comment récupérer des étiquettes délimitées par des points dans Docker avec « docker inspect » ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-09 15:06:02756parcourir

How to Retrieve Dot-Delimited Labels in Docker with `docker inspect`?

Navigation dans les étiquettes d'image Docker délimitées par des points

La commande Docker inspect s'avère utile pour récupérer les étiquettes associées aux images Docker. En utilisant l'option --format, on peut accéder facilement aux valeurs des étiquettes à l'aide des modèles Go. Cependant, des défis surviennent lorsqu'il s'agit d'étiquettes contenant des points ("".") dans leurs noms.

Le défi des noms d'étiquettes en pointillés

Comme le démontre le code ci-dessous, l'utilisation de l'option --format ne parvient pas à récupérer les étiquettes avec des points dans leurs noms :

# Dockerfile
FROM busybox
LABEL foo="bar"
LABEL com.wherever.foo="bang"

# Build the image
$ docker build -t foo .

# Attempt to retrieve the label using --format
$ docker inspect -f '{{ .Config.Labels.com.wherever.foo }}' foo
<no value>

Résoudre le problème avec l'index Fonction

Pour accéder aux étiquettes en pointillés, utilisez la fonction index, qui permet de récupérer des chaînes arbitraires à partir d'une carte. Cela élimine le besoin d'analyser la sortie JSON de docker inspect.

# Using the index function
$ docker inspect -f '{{ index .Config.Labels "com.wherever.foo" }}' foo
bang

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn