前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Docker管理工具】安装Docker容器自动更新工具Watchtower

【Docker管理工具】安装Docker容器自动更新工具Watchtower

原创
作者头像
江湖有缘
发布2023-12-21 15:30:28
1.5K0
发布2023-12-21 15:30:28
举报
文章被收录于专栏:Linux成长之路
在这里插入图片描述
在这里插入图片描述

一、Watchtower介绍

1.1 Watchtower简介

Watchtower可以自动执行 Docker 容器基础映像更新的过程。Watchtower 将拉下您的新映像,优雅地关闭现有容器,然后使用最初部署时使用的相同选项重新启动它。

1.2 Watchtower使用注意

  • Watchtower 旨在用于家庭实验室、媒体中心、本地开发环境等,请不要使用在生产环境。

1.3 Watchtower使用场景

Watchtower主要用于个人环境下自动更新家庭个人服务器中的容器应用。但在生产环境中不适合使用该工具,而是应该使用像Kubernetes这样的容器管理工具。Kubernetes提供了自动更新容器的功能,通过设置滚动更新策略,可以在容器更新时保证应用的高可用性。因此,在生产环境中应考虑使用Kubernetes来进行容器管理和自动更新的功能。

1.4 Docker容器介绍

Docker容器是一种轻量级的虚拟化技术,用于将应用程序和其依赖项打包在一个可移植的容器中。容器通过隔离应用程序的运行环境,使其可以在不同的操作系统和硬件平台上运行。与传统的虚拟机相比,Docker容器更加轻量级和可移植。Docker容器共享主机操作系统的内核,因此可以在同一个主机上同时运行多个容器,而不像虚拟机需要为每个虚拟机分配一定的资源和独立的操作系统。这使得容器在资源利用和性能方面更加高效。Docker容器提供了一个灵活且可控的环境,可以在任何地方运行应用程序,并且能够快速部署和扩展应用程序。它可以帮助开发人员简化应用程序的交付和部署,并提供了更高效的资源利用和更好的可移植性。

二、本次实践介绍

2.1 本地环境规划

本次实践为个人测试环境,操作系统版本为centos7.6。

hostname

IP地址

操作系统版本

Docker版本

jeven

192.168.3.166

centos 7.6

2 20.10.17

2.2 本次实践介绍

1.本次实践部署环境为个人测试环境,生产环境请谨慎;

2.在Docker环境下使用Docker容器自动更新工具Watchtower。

三、本地环境检查

3.1 检查Docker服务状态

检查Docker服务是否正常运行,确保Docker正常运行。

代码语言:bash
复制
[root@jeven ~]#  systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2023-12-19 13:51:24 CST; 23h ago
     Docs: https://docs.docker.com
 Main PID: 11579 (dockerd)
    Tasks: 23
   Memory: 605.0M
   CGroup: /system.slice/docker.service

3.2 检查Docker版本

检查Docker版本

代码语言:bash
复制
[root@jeven ~]# docker -v
Docker version 20.10.17, build 100c701

3.3 检查docker compose 版本

检查Docker compose版本,确保2.0以上版本。

代码语言:bash
复制
[root@jeven ~]# docker compose version
Docker Compose version v2.6.0

四、下载Watchtower镜像

从docker hub拉取Watchtower镜像

代码语言:bash
复制
[root@jeven ~]# docker pull containrrr/watchtower
Using default tag: latest
latest: Pulling from containrrr/watchtower
e0c7a3e4c313: Pull complete
db1b75c6d82b: Pull complete
5bdc0dfc1598: Pull complete
Digest: sha256:3283e0b5be326d77ff4f4e8b7a91d46aaa1d511c74877b5a32f161548812d00c
Status: Downloaded newer image for containrrr/watchtower:latest
docker.io/containrrr/watchtower:latest

五、Watchtower的基本使用

5.1更新宿主机的所有容器

使用以下命令,更新宿主机的所有容器,也包括 Watch­tower 本身。

代码语言:bash
复制
docker run -d  \
    --name watchtower \
    --volume /var/run/docker.sock:/var/run/docker.sock \
    containrrr/watchtower

5.2 指定某个容器进行监视

如果指向监视某一个容器进行自定更新,则在上述命令后面加上容器名即可。

代码语言:bash
复制
docker run -d \
    --name watchtower \
    -v /var/run/docker.sock:/var/run/docker.sock \
    containrrr/watchtower \
    miniboard
在这里插入图片描述
在这里插入图片描述

5.3 指定容器的更新频率

Watchtower 默认情况下 24 小时会检查一次镜像更新。设置--interval 选项更新时间,默认单位秒。

代码语言:bash
复制
docker run -d \
    --name watchtower \
    -v /var/run/docker.sock:/var/run/docker.sock \
    containrrr/watchtower \
    --interval 6
在这里插入图片描述
在这里插入图片描述

可以使用--schedule选项, 设定定时更新任务,定时任务为6 字段来表示执行时间,第一个字段表示秒。

代码语言:bash
复制
docker run -d \
    --name watchtower \
    -v /var/run/docker.sock:/var/run/docker.sock \
    containrrr/watchtower \
    --schedule "0 30 20 * * 5"

表示每周五晚上8点半点检查一次。

在这里插入图片描述
在这里插入图片描述

5.4 自定清理旧镜像

可以使用--cleanup 选项,这样每次更新都会把旧的镜像清理掉。

代码语言:bash
复制
docker run -d \
    --name watchtower \
    -v /var/run/docker.sock:/var/run/docker.sock \
    containrrr/watchtower \
    --cleanup

用于清理无用的Docker卷。它会删除所有没有关联到任何容器的卷,以释放磁盘空间。

代码语言:bash
复制
docker volume prune

五、官方参考文档

更多Watchtower详细使用说明,可以参考官方文档。

我正在参与2023腾讯技术创作特训营第四期有奖征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、Watchtower介绍
    • 1.1 Watchtower简介
      • 1.2 Watchtower使用注意
        • 1.3 Watchtower使用场景
          • 1.4 Docker容器介绍
          • 二、本次实践介绍
            • 2.1 本地环境规划
              • 2.2 本次实践介绍
              • 三、本地环境检查
                • 3.1 检查Docker服务状态
                  • 3.2 检查Docker版本
                    • 3.3 检查docker compose 版本
                    • 四、下载Watchtower镜像
                    • 五、Watchtower的基本使用
                      • 5.1更新宿主机的所有容器
                        • 5.2 指定某个容器进行监视
                          • 5.3 指定容器的更新频率
                            • 5.4 自定清理旧镜像
                            • 五、官方参考文档
                            相关产品与服务
                            容器服务
                            腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                            领券
                            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档