岗楼 是一个免费的开源应用程序,可让您监控正在运行的 Docker 容器,并在发现其基础映像有任何更改时自动更新它们。 当 watchtower 发现一个正在运行的容器需要更新时,它会通过发送一个 SIGTERM 信号优雅地停止正在运行的容器。 然后它将下载新镜像,最后使用最初部署时使用的相同选项重新启动容器。 一切都将在后台自动完成,因此不需要用户干预。 在本指南中,我们将了解如何在类 Unix 操作系统中使用 Watchtower 自动更新正在运行的 Docker 容器。
我在 CentOS 7 最小版中测试了本指南,但是所有 Linux 发行版的过程都是相同的。
Watchtower – 自动更新正在运行的 Docker 容器
安装瞭望塔
Watchtower 本身可以作为 Docker 镜像使用。 因此,部署它并不是什么大问题。 在您的 Linux 机器上安装 Docker,并立即开始运行 Watchtower 以监控 Docker 容器。
请参阅以下指南在基于 YUM 和基于 DEB 的系统上安装 Docker。
- 如何在 CentOS 中安装 Docker
- 如何在 Ubuntu 中安装 Docker
安装 Docker 后,您可以使用以下命令部署 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
推荐下载 – 免费电子书:“Docker Containerization Cookbook”
用法
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 ostechnix
正如您在上面的输出中看到的,Watchtower 容器与另一个名为“ostechnix”的容器一起运行。 从现在开始,守望台每隔几分钟就会开始监视这个容器。 如果在此容器的基础镜像中发现任何更改,它将正常关闭“ostechnix”容器,并使用与最初启动时使用的选项相同的新镜像重新启动它。 同样,它会每隔几分钟自动检查所有正在运行的容器的更新,并自动更新它们。
默认情况下,Watchtower 将监控在它所指向的 Docker 守护进程中运行的所有 Docker 容器。 但是,您可以通过指定容器的名称来限制 watchtower 监控特定的 Docker 容器,如下所示。
# docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock v2tec/watchtower ostechnix
在上述 example,watchtower 只会监控名为“ostechnix”的容器是否有更新,其他正在运行的容器会被忽略。 如果不指定任何参数,watchtower 将照常监控所有正在运行的 Docker 容器。
- 开始使用 Docker
- ctop – Linux 容器的命令行监控工具
- Dockly – 从终端管理 Docker 容器
- Portainer – 管理 Docker 的最简单方法
- PiCluster – 一个简单的、基于 Web 的 Docker 管理应用程序
在监控多个链接容器时,Watchtower 足够聪明。 假设您正在运行两个名为“Nginx”的容器和链接到“Nginx”容器的“wordpress”容器。 如果 Watchtower 发现“Nginx”容器有更新,它将首先关闭链接的容器,即“wordpress”,然后停止 Nginx 容器。 然后,它将以正确的顺序重新启动两个容器,以便应用程序正确恢复。 在我们的例子中,将首先启动 Nginx 容器,然后是 wordpress 容器,以确保链接继续工作。 有关更多详细信息,请参阅本指南末尾提供的 Watchtower GitHub 页面链接。
就这样。 如果您觉得我们的指南有用,请在您的社交、专业网络上分享并支持 OSTechNix。 更多好东西即将到来。 敬请关注!
干杯!
资源:
感谢您的光临!
帮助我们帮助您:
- 订阅我们的电子邮件通讯: 立即注册
- 支持 OSTechNix: 通过贝宝捐款
- 下载免费的电子书和视频: TradePub 上的 OSTechNix
- 联系我们: 红迪网 | Facebook | Twitter | 领英 | RSS订阅
祝你有美好的一天!!