需要从文件中获取加载镜像的docker镜像标签

问题描述 投票:0回答:1

我有多个同名的图像,并且我构建了一个脚本,可以让我从 tar 加载图像,然后获取它的标签并更新 yaml 文件。问题是,只有当图像是该名称的最新图像时,这才有效。

docker images "$image_name" --format "{{.Tag}}" | sort -rV | head -n 1

有时我需要加载较旧的图像,该图像可能比最新图像更旧。在这种情况下,我想获取我加载的特定图像。

eg:如果我已经有一个图像 gui:test_v1.5 图像,但我需要从 tar 加载旧图像,例如,

docker load -i test_v1.0.tar 

加载上面的图像后,如果我运行

docker images "$image_name" --format "{{.Tag}}" | sort -rV | head -n 1

我仍然只获得 test_v1.5 的标签,因为根据创建日期。我知道 -rV 标签用于根据修订标签进行排序。

我似乎无法获取该图像的标签。有什么可行的方法吗?

我需要标签名称,以便我可以在 shell 脚本中使用 sed 自动更新 yaml 文件。

docker image sh
1个回答
0
投票

您可以从 tar 文件中提取数据。

repositories
manifests.json
文件将包含您要查找的内容。例如

tar -xf test_v1.0.tar --to-stdout repositories \
  | jq -r ".[\"${repository}\"] | keys | .[0]"
© www.soinside.com 2019 - 2024. All rights reserved.