Docker Compose可以很方便地下载和管理容器,但是无法自动化地更新镜像,这么多镜像我们总不能一个个地手动更新新的镜像,好在早就有人找到了解决办法,就是使用Watchtower。我看了下GitHub上最近的commit都是两年前了,说明代码已经非常稳定了,可以放心使用。

安装

安装非常简单,这是compose文件

services:
  watchtower:
    image: containrrr/watchtower
    container_name: watchtower
    restart: unless-stopped
    environment:
      - TZ=America/Toronto
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    command:
      --interval 86400 --label-enable --cleanup
    labels:
      - "com.centurylinklabs.watchtower.enable=false"

使用

使用也非常简单,在所有需要自动更新的镜像的compose添加如下两行配置即可,watchtower会接入docker.sock然后扫描所有需要更新的镜像,如果有true则自动下载新的镜像,删除旧的镜像,上面compose里的commandinterval是检查更新的频率,86400指的是每天检查一次。配置好之后啥也不用动了,所有操作都是无感的。

labels:
  - "com.centurylinklabs.watchtower.enable=true"