【Linux 系列】Watchtower - 自动更新 Docker 镜像与容器

2023-03-23 21:08:50 浏览数 (1)

介绍 Watchtower

Watchtower 是一个 Docker 容器的自动更新服务。当 Docker Hub 上的镜像被更新时,Watchtower 会检测这些变化并更新本地的 Docker 镜像和容器。

Watchtower 具有以下特点:

  • 使用简单:仅需一条命令即可启动 Watchtower;
  • 支持多种 Docker Registry:支持 Docker Hub、Amazon ECR、Google Container Registry 等;
  • 安全性高:支持使用 TLS 加密进行通信。

具体操作

安装 Watchtower

安装 Watchtower 非常简单。首先,需要在主机上安装 Docker。然后,使用以下命令下载并运行 Watchtower:

代码语言:javascript复制
$ docker run -d --name watchtower 
-v /var/run/docker.sock:/var/run/docker.sock 
containrrr/watchtower

在此命令中,我们使用 docker run 命令启动 Watchtower 容器。--name参数指定了容器的名称,-v参数将主机上的 Docker 套接字映射到容器内部的 Docker 套接字,以便 Watchtower 能够监视 Docker 守护程序上的容器和镜像。最后,containrrr/watchtower参数指定要使用的 Docker 镜像。

配置 Watchtower

默认情况下,Watchtower 将监视所有容器,并在发现更新时自动更新它们。但是,您可能希望更改此行为以满足您的特定需求。可以使用以下环境变量配置 Watchtower:

  • WATCHTOWER_POLL_INTERVAL:指定 Watchtower 轮询 Docker Registry 以查找镜像更新的时间间隔(单位:秒)。默认值为 300 秒(5 分钟)。
  • WATCHTOWER_CLEANUP:指定 Watchtower 是否应删除已停止容器的标志。默认值为 false。
  • WATCHTOWER_INCLUDE_STOPPED:指定 Watchtower 是否应考虑已停止的容器。默认值为 false。
  • WATCHTOWER_LABEL_ENABLE:指定 Watchtower 是否应解析具有指定标签的容器。默认值为 false。
  • WATCHTOWER_LABEL_FILTER:指定 Watchtower 应解析具有哪些标签的容器。默认值为空。

例如,要将 Watchtower 配置为每 10 秒轮询 Docker Registry 以查找更新,并在更新时自动重启受影响的容器,请使用以下命令:

代码语言:javascript复制
$ docker run -d --name watchtower 
-e WATCHTOWER_POLL_INTERVAL=10 
-v /var/run/docker.sock:/var/run/docker.sock 
containrrr/watchtower

总结

Watchtower 是一个方便的自动化工具,可帮助您管理 Docker 镜像和容器。无需手动检查更新或重新启动容器,Watchtower 将自动执行这些任务。同时,Watchtower 也具有很高的安全性,因为它支持使用 TLS 加密进行通信。如果您正在使用 Docker 构建和管理容器化应用程序,那么 Watchtower 是一个必备的工具。

0 人点赞