- A+
Watchtower是一个免费的开源应用程序,允许您监视正在运行的Docker容器,并在发现其基本映像发生任何更改时自动更新它们。当了望塔发现需要更新正在运行的容器时,它将通过向其发送SIGTERM信号来优雅地停止正在运行的容器。然后它将下载新映像,最后使用最初部署时使用的相同选项重新启动Container。一切都将在后台自动完成,因此不需要用户干预。在本指南中,我们将了解如何在类Unix操作系统中使用Watchtower自动更新正在运行的Docker容器。
我在CentOS 7最小版本中测试了本指南,但是所有Linux发行版的程序都是相同的。
了望塔 - 自动更新正在运行的Docker容器
安装了望塔
了望塔本身可用作Docker图像。因此,部署它并不是什么大问题。在Linux机器上安装Docker,并立即开始运行Watchtower来监控Docker容器。
安装Docker后,您可以使用以下命令以root用户身份部署Watchtower容器:
# docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock v2tec/watchtower
此命令将拉出了望塔的最新图像,并启动了望塔容器。
样本输出:
Unable to find image 'v2tec/watchtower:latest' locally latest: Pulling from v2tec/watchtower a3ed95caeb02: Pull complete 802d894958a2: Pull complete 9916c27d2815: Pull complete Digest: sha256:d89ea18b6332cc83639771fda274ebfd76f7042856d8f4997e99c7925ad02ae9 Status: Downloaded newer image for v2tec/watchtower:latest e85c923f2e4dd22a62c12b038ea9694ba9245dcd835f210e1a1f902ee311e004
用法
Watchtower现在已开始使用您系统上的其他正在运行的容器。您可以使用命令查看正在运行的Docker容器的列表:
# docker ps
输出:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e85c923f2e4d v2tec/watchtower "/watchtower" 3 minutes ago Up 3 minutes watchtower 58543e6ed18a centos:latest "/bin/bash" 5 minutes ago Up 5 minutes baiked
正如您在上面的输出中看到的,Watchtower容器与另一个名为“ostechnix”的容器一起运行。从现在开始,Watchtower将每隔几分钟开始观看这个容器。如果它在此容器的基本映像中发现任何更改,它将正常关闭“ostechnix”容器,并使用新映像重新启动它,该映像具有最初启动时使用的相同选项。同样,它会每隔几分钟自动检查所有正在运行的容器的更新,并自动更新它们。
默认情况下,Watchtower将监视在其指向的Docker守护程序中运行的所有Docker容器。但是,您可以通过指定容器的名称来限制了望塔以监视特定的Docker容器,如下所示。
# docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock v2tec/watchtower baiked
在上面的示例中,了望塔仅监视名为“baiked”的容器以进行更新,其他正在运行的容器将被忽略。如果您没有指定任何参数,那么了望塔将像往常一样监视所有正在运行的Docker容器。
在监控多个链接容器时,了望塔足够聪明。我们假设您正在运行两个名为“Nginx”和“wordpress”容器的容器,该容器链接到“Nginx”容器。如果Watchtower发现“Nginx”容器的更新,它将首先关闭链接容器,即“wordpress”,然后停止Nginx容器。然后,它将以正确的顺序重新启动两个容器,以便应用程序正确恢复。在我们的例子中,首先启动Nginx容器,然后启动wordpress容器以确保链接继续工作。有关更多详细信息,请参阅本指南末尾提供的Watchtower GitHub页面链接。
- 安卓客户端下载
- 微信扫一扫
- 微信公众号
- 微信公众号扫一扫