获取docker容器镜像指定版本号是否为latest
是否遇到过以下问题: ①以xxx:latest镜像部署了某个容器,一年之后xxx已经更新到8.0了,不禁要问这个latest到底是5.0还是6.0还是7.0? ②以xxx:5.0部署的容器,现在的latest对应的是什么版本呢?
在现代软件开发中,Docker 已经成为了容器化应用的标准工具。通过 Docker,开发者可以轻松地打包、分发和运行应用程序,确保在不同环境中的一致性。然而,随着应用的不断更新,本地 Docker 镜像的版本管理成为了一个常见的挑战。开发者需要确保本地镜像与 Docker Hub 或 GitHub Container Registry (GHCR) 上的最新版本保持同步,以避免使用过时的镜像。
为了解决这一问题,docker-check-is-latest 工具应运而生。这是一个用 Go 语言编写的脚本,旨在帮助开发者快速检查本地 Docker 镜像是否与 Docker Hub 和 GitHub Container Registry 上的最新版本保持一致。
docker-check-is-latest 工具的主要功能包括:
自动扫描运行中的容器: 脚本会自动扫描当前系统中所有正在运行的 Docker 容器,并获取它们的镜像信息。
版本对比: 脚本会将本地镜像的版本与 Docker Hub 和 GitHub Container Registry 上的最新版本进行对比,判断本地镜像是否是最新的。
支持私有仓库: 如果开发者需要访问 GitHub Container Registry 上的私有仓库,可以通过提供个人访问令牌 (PAT) 来授权访问。
输出结果: 脚本会将对比结果输出到控制台,或者保存为 JSON 文件,方便开发者进一步分析,如:
[
{
"container": "/great_heisenberg",
"image": "m.daocloud.io/ghcr.io/esphome/esphome:2024.12.4",
"is_latest": "yes",
"latest_tags": "2024.12.4|2024.12|stable|latest"
}
]
目前已支持DockerHub和ghcr.io。