docker - 如何检索图像的最新标签?

标签 docker

鉴于以下图像列表,我将如何检索最新的标签? (0.0.268) 我想结合 bash 和 Go 模板是可能的,但我想不通...

my-image 0.0.1 fd704b8d675e
my-image 0.0.2 9294a62d2c38
my-image 0.0.9 325326e8f7a2
my-image 0.0.10 b97c64b198d9
my-image 0.0.268 8a89b5fac348

例如:
通过运行以下命令(bx cr 是 IBM Bluemix CLI):

tagsList=$(bx cr images --format "{{if (eq .Repository \"myregistry/mynamespace/myimage\")}} {{.Tag}}{{end}}")

$tagsList的回声是:

0.0.10 0.0.12 0.0.13 0.0.14 0.0.15 0.0.3 0.0.4 0.0.5 0.0.7

在这个列表中,我需要最新的标签,即 0.0.15

最佳答案

获取最后一个标签 <major_version>.<medium_version>.<minor_version> :

file.txt:

my-image 0.10.1 fd704b8d675e
my-image 2.0.2 9294a62d2c38
my-image 0.0.9 325326e8f7a2
my-image 10.0.3 b97c64b198d9
my-image 10.0.10 b97c64b198d9
my-image 0.0.268 8a89b5fac348
my-image 10.0.6 b97c64b198d9

last_tag.sh:

#!/usr/bin/env bash

cut -d' ' -f2 file.txt \
    | sort -t . -k1,1 -k2,2 -k3,3 -nr \
    | head -1

-t . : 精确分隔符 .
-k n,n : 对第 n 列(从 1 开始)进行排序
-nr : 按降序排列数字(无字符串)
-k1,1 -k2,2 -k3,3 : 按第 1 列、第 2 列、第 3 列的顺序排序, 也就是大版本,中版本,小版本。

输出:

10.0.10

关于docker - 如何检索图像的最新标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44736921/

相关文章:

mysql - 通过 ssh 使用 SQL 脚本失败,但直接在主机上启动时不会

docker - docker 统计信息中不断增加的 NET I/O 值意味着什么?

azure - 无法在 Azure Windows 10 VM 上启动 'Docker for windows'

docker - 将文件夹从 docker 容器共享到主机

node.js - 无法在Docker内部启动 Node 应用程序

docker - 为什么我们需要在 Dockerfile 中有一个 Alpine 或 Ubuntu 基础镜像?

django - 用于 Django 容器 SMTP 后端的 Docker SMTP 服务器

docker-compose 外部构建上下文与相对 dockerfile

docker - CodeBuild 环境需要我自己的 docker 镜像吗?

docker - docker和host之间的PID映射