Watchtower 是一个可以实现自动化更新 Docker 基础镜像与容器的实用工具。它监视正在运行的容器以及相关的镜像,当检测到registry中的镜像与本地的镜像有差异时,它会拉取最新镜像并使用最初部署时相同的参数重新启动相应的容器,一切好像什么都没发生过,就像更新手机上的APP一样。Watchtower 将自动使您所有正在运行的 Docker 容器保持最新状态。如果您使用 Docker 运行所有自托管服务或应用程序,这将很有用。每隔几分钟,Watchtower 就会为您的应用程序拉取最新的镜像,并将其与用于运行容器的镜像进行比较。假设镜像有任何变化,在这种情况下,Watchtower 将使用新镜像自动重启容器,并使用最初用于启动它的 docker run
或 docker-compose
配置。
本教程介绍了如何在 Ubuntu 20.04 上安装 Watchtower。
Watchtower 官网:https://containrrr.dev/watchtower/
一、前期准备工作
1、准备一个 Debian/Ubuntu 系统
在 Debian 或 Ubuntu 上运行的系统。 也可以使用其他采用 APT 包管理器的 Linux 发行版。 如果还没有兼容的系统,可以进行重装系统。
2、连接到搬瓦工 SSH
其次我们需要通过 SSH 连接到搬瓦工 VPS,然后才能进行一系列操作。
3、更新系统
sudo apt update && sudo apt upgrade
二、Watchtower 安装教程
1. 安装 Docker
理想情况下,您应该已经在服务器上安装了 Docker,因为您应该已经在使用它。 如果没有,您可以按照以下步骤安装它:
1、删除所有旧版本 Docker:
$ sudo apt remove docker docker-engine docker.io containerd runc
2、通过 snap
安装 Docker:
$ sudo snap install docker
2. 安装 Watchtower
如果您没有运行 Docker 容器,请创建一个。例如,您可以使用 Docker 入门镜像。
$ sudo docker run -d -p 80:80 docker/getting-started
要检查您是否有任何现有的正在运行的容器,您可以运行 docker ps
。
1、创建 Watchtower 容器
$ sudo docker run --detach / --name watchtower / --volume /var/run/docker.sock:/var/run/docker.sock / containrrr/watchtower
2、检查 Watchtower 容器是否运行
$ sudo docker ps STATUS Up x seconds/minutes
您现在已经成功安装并配置了 Watchtower 以定期更新您的 Docker 容器镜像。
三、额外设置
Watchtower 有一些额外的配置,可以使用命令行参数进行更改。
1. 设置时区
您可以通过将主机的 /etc/localtime 文件挂载到容器中来设置 Watchtower 使用的时区。
$ sudo docker run --detach / --name watchtower / --volume /var/run/docker.sock:/var/run/docker.sock / --volume /etc/localtime:/etc/localtime:ro / containrrr/watchtower
2. 自动删除旧镜像
默认情况下,Watchtower 不会删除旧镜像。如果您需要节省磁盘空间,启用此功能可能很有用。
$ sudo docker run --detach / --name watchtower / --volume /var/run/docker.sock:/var/run/docker.sock / --volume /etc/localtime:/etc/localtime:ro / containrrr/watchtower / --cleanup
搬瓦工推荐方案
方案 | 内存 | CPU | 硬盘 | 流量/月 | 带宽 | 机房 | 价格 | 购买 |
---|---|---|---|---|---|---|---|---|
CN2 (最便宜) |
1GB | 1核 | 20GB | 1TB | 1Gbps | DC3 CN2 DC8 ZNET |
$49.99/年 | 购买 |
CN2 | 2GB | 1核 | 40GB | 2TB | 1Gbps | $52.99/半年 $99.99/年 |
购买 | |
CN2 GIA-E (最推荐) |
1GB | 2核 | 20GB | 1TB | 2.5Gbps | DC6 CN2 GIA-E DC9 CN2 GIA 日本软银 JPOS_1 荷兰 EUNL_9 |
$49.99/季度 $169.99/年 |
购买 |
CN2 GIA-E | 2GB | 3核 | 40GB | 2TB | 2.5Gbps | $89.99/季度 $299.99/年 |
购买 | |
HK | 2GB | 2核 | 40GB | 0.5TB | 1Gbps | 中国香港 CN2 GIA | $89.99/月 $899.99/年 |
购买 |
HK | 4GB | 4核 | 80GB | 1TB | 1Gbps | $155.99/月 $1559.99/年 |
购买 | |
TOKYO | 2GB | 2核 | 40GB | 0.5TB | 1.2Gbps | 日本东京 CN2 GIA | $89.99/月 $899.99/年 |
购买 |
TOKYO | 4GB | 4核 | 80GB | 1TB | 1.2Gbps | $155.99/月 $1559.99/年 |
购买 | |
搬瓦工优惠码:BWH3HYATVBJW |
选择建议:
- 入门:洛杉矶 CN2 套餐,目前最便宜,可选 CN2 GT 机房,入门之选。
- 推荐:洛杉矶 CN2 GIA-E 套餐,速度超快,可选机房多(DC6、DC9、日本软银、荷兰联通等),性价比最高。
- 高端:香港 CN2 GIA 套餐,价格较高,但是无可挑剔。东京 CN2 GIA 套餐也是非常不错的高端选择。