Featured image of post 容器(5):docker最佳实践指南——容器更新监测工具WUD(What's Up Docker)

容器(5):docker最佳实践指南——容器更新监测工具WUD(What's Up Docker)

使用WUD(What's Up Docker)监测容器的更新

缘起

这是介绍docker容器的第五篇文章。本系列其他文章链接如下:

上一篇文章提到了如何更新或升级容器。我在更新docker容器时发现,其中很多容器都已经两三年没更新了,版本跨越太多,这就导致有些容器没法直接更新。而有些容器则更新不多,可以直接更新。由于各个容器更新频率不同,而且创建的容器优比较多,我不想隔几天就手动去检查一下容器有没有更新可用。于是我就想到了一个问题:有没有工具可以自动监测容器的更新呢?

当然是有的,比如WatchTower,但WatchTower是自动更新容器的工具,我并不想让它自动更新,我只想知道容器有没有更新可用,所以就一直没用。最近,我发现有个叫WUD(What’s Up Docker)的工具可以监测容器的更新,并且简单易用,就打算尝试一下。

前提

  • 已安装Docker和docker-compose
  • 了解Docker的基本概念和基本用法
  • 使用docker-compose管理容器(如果你没有使用docker-compose管理容器,也不想使用docker-compose管理容器,那么本篇文章仅供参考)

WUD(What’s Up Docker)简介

WUD(What’s Up Docker)是一个开源的Docker容器更新监测工具,它可以监测Docker Hub上的容器镜像是否有更新,并且可以通过邮件、Slack等方式通知用户。

WUD安装与使用

安装WUD

WUD的安装十分简单,按照官方文档的说明即可。这里我们使用docker-compose来安装WUD,docker-compose.yml文件如下:

1
2
3
4
5
6
7
8
services:
  whatsupdocker:
    image: getwud/wud
    container_name: wud
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    ports:
      - 3000:3000

启动后在浏览器中访问http://localhost:3000即可。

创建管理账户

但上述方法安装的WUD是没有管理账户的,在本地访问尚可,但如果想把服务暴露到公网,就需要创建一个管理账户。WUD提供了两种方法来创建管理账户:

  1. 使用环境变量将用户名和密码传递给WUD容器
  2. 使用OpenidConnect(OIDC)来创建管理账户

详见[官方文档](https://getwud.github.io/wud/#/configuration/authentications/)。

第一种方法非常简单便捷,我就直接使用了。我们只需要在docker-compose.yml文件中添加以下环境变量即可:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
services:
  whatsupdocker:
    image: getwud/wud
    container_name: wud
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    ports:
      - 3001:3000
    environment:
      - WUD_AUTH_BASIC_ADMIN_USER=your_admin_name
      - WUD_AUTH_BASIC_ADMIN_HASH=your_admin_password_hash

其中密码是以hash的形式存储的,我们可以使用hrpasswd命令来生成密码的hash:

1
htpasswd -nib admin doe

如果你没有安装htpasswd命令,可以在这个网站上生成密码的hash。

需要注意的是,生成的hash值以用户名开头,我们只需要取出冒号后面的部分即可。冒号后面的部分可能含有$符号,所以我们需要用$$来替换掉$符号。比如原hash值为$apr1$2c4a3d5e$e0f8b7c6d7f8b7c6d7f8b7c6,那么我们需要将其替换为$$apr1$$2c4a3d5e$$e0f8b7c6d7f8b7c6d7f8b7c6

再重新启动WUD容器,进入浏览器,可以看到如下登录界面: wud_login

输入你的用户名和密码就可以登录了,注意输入的是密码,不需要输入hash值。

WUD监测容器更新

通过网页界面可以监测容器的更新状态,登录后可以看到如下界面:

wud_main

可见WUD检测到了37个容器,其中10个有更新的版本可用。点击进去可用查看详情:

wud_web2

可以看到容器的当前版本号以及最新的版本号,我们可以根据需求来决定是否更新容器。

comments powered by Disqus