Cup:检查容器镜像更新的简单方法

简介

什么是 Cup ?

Cup 是一个开源工具,旨在简化 Docker 容器的更新管理。它提供了一种快速且高效的方法来检查 Docker 镜像的更新。

主要特点

  1. 高效快速Cup 优化了性能,能够快速检查多个镜像的更新,例如在 Raspberry Pi 5 上检查 58 个镜像仅需 3.7 秒。
  2. 广泛支持:支持多种容器注册表,包括 Docker Hubghcr.ioQuaylscr.ioGitea
  3. 避免速率限制Cup 设计时考虑到了 Docker Hub 对未认证用户的拉取限制,能够在不超出这些限制的情况下使用。
  4. 用户友好的界面:提供美观的命令行界面和网页界面,方便用户随时检查容器状态。
  5. 小巧的二进制文件Cup 的大小仅为 5.4 MB,避免了下载大容量的 Docker 镜像。
  6. JSON 输出:支持 CLI 和网页界面输出 JSON 格式,便于与其他工具集成。

使用场景

Cup 适用于需要定期检查和更新 Docker 容器镜像的开发者和运维人员。

Cup 还是一个正在开发中的项目。所以它可能没有其他替代方案那么多功能。但提供了灵活性,用户可以通过定期调度任务来获取更新信息。

安装

在群晖上以 Docker 方式安装。镜像发布在 ghcr.io

需要用 SSH 客户端登录到群晖后,执行下面的拉取命令

如果没有科学上网,很可能会拉不动

1
2
# 拉取镜像
docker pull ghcr.io/sergi0g/cup

下载完成后,可以在 映像 中找到

Cup 支持通过 CLIWeb 界面两种模式检查您的容器

CLI 模式

可以通过 check 命令检查所有的更新

1
2
3
4
5
# 检查所有更新
docker run -it \
-v /var/run/docker.sock:/var/run/docker.sock \
ghcr.io/sergi0g/cup \
check

也可以指定检查某个容器

1
2
3
4
5
# 检查指定容器的更新
docker run -it \
-v /var/run/docker.sock:/var/run/docker.sock \
ghcr.io/sergi0g/cup \
check ghcr.io/sergi0g/cup:latest

Web 模式

1
2
3
4
5
6
# 运行容器(Server)
docker run -it \
-p 9055:9000 \
-v /var/run/docker.sock:/var/run/docker.sock \
ghcr.io/sergi0g/cup \
serve -p 9000

在浏览器中输入 http://群晖IP:9055 就能看到主界面

点黄色的向上箭头

点蓝色的向上箭头

虽然老苏能下载 docker hub 的镜像,但是在运行 Cup 时,日志中会显示

1
WARN GET https://registry-1.docker.io/v2/: Connection failed after 3 retries!

可能是因为 docker hub 限制了未认证用户的拉取次数,而老苏机器上的镜像数量又比较多

因此在网页模式下 docker hub 的镜像都显示为了 Unknown

当然,以上只是老苏的猜测而已

参考文档

sergi0g/cup: 🥤Docker container updates made easy
地址:https://github.com/sergi0g/cup

Cup - The easiest way to manage your container updates
地址:https://cup.sergi0g.dev/

Introduction
地址:https://cup.sergi0g.dev/docs