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

简介: 【2月更文挑战第8天】安装Docker容器自动更新工具Watchtower

在这里插入图片描述

一、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正常运行。

[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版本

[root@jeven ~]# docker -v
Docker version 20.10.17, build 100c701

3.3 检查docker compose 版本

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

[root@jeven ~]# docker compose version
Docker Compose version v2.6.0

四、下载Watchtower镜像

从docker hub拉取Watchtower镜像

[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 本身。

docker run -d  \
    --name watchtower \
    --volume /var/run/docker.sock:/var/run/docker.sock \
    containrrr/watchtower

5.2 指定某个容器进行监视

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

docker run -d \
    --name watchtower \
    -v /var/run/docker.sock:/var/run/docker.sock \
    containrrr/watchtower \
    miniboard

在这里插入图片描述

5.3 指定容器的更新频率

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

docker run -d \
    --name watchtower \
    -v /var/run/docker.sock:/var/run/docker.sock \
    containrrr/watchtower \
    --interval 6

在这里插入图片描述

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

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 选项,这样每次更新都会把旧的镜像清理掉。

docker run -d \
    --name watchtower \
    -v /var/run/docker.sock:/var/run/docker.sock \
    containrrr/watchtower \
    --cleanup

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

docker volume prune

五、官方参考文档

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

相关文章
|
14天前
|
NoSQL 关系型数据库 应用服务中间件
docker基础篇:安装tomcat
docker基础篇:安装tomcat
139 64
|
6天前
|
搜索推荐 安全 数据安全/隐私保护
7 个最能提高生产力的 Docker 容器
7 个最能提高生产力的 Docker 容器
75 35
|
5天前
|
Ubuntu Linux 开发工具
docker 是什么?docker初认识之如何部署docker-优雅草后续将会把产品发布部署至docker容器中-因此会出相关系列文章-优雅草央千澈
Docker 是一个开源的容器化平台,允许开发者将应用程序及其依赖项打包成标准化单元(容器),确保在任何支持 Docker 的操作系统上一致运行。容器共享主机内核,提供轻量级、高效的执行环境。本文介绍如何在 Ubuntu 上安装 Docker,并通过简单步骤验证安装成功。后续文章将探讨使用 Docker 部署开源项目。优雅草央千澈 源、安装 Docker 包、验证安装 - 适用场景:开发、测试、生产环境 通过以上步骤,您可以在 Ubuntu 系统上成功安装并运行 Docker,为后续的应用部署打下基础。
docker 是什么?docker初认识之如何部署docker-优雅草后续将会把产品发布部署至docker容器中-因此会出相关系列文章-优雅草央千澈
|
11天前
|
存储 Kubernetes 开发者
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
Docker 是一种开源的应用容器引擎,允许开发者将应用程序及其依赖打包成可移植的镜像,并在任何支持 Docker 的平台上运行。其核心概念包括镜像、容器和仓库。镜像是只读的文件系统,容器是镜像的运行实例,仓库用于存储和分发镜像。Kubernetes(k8s)则是容器集群管理系统,提供自动化部署、扩展和维护等功能,支持服务发现、负载均衡、自动伸缩等特性。两者结合使用,可以实现高效的容器化应用管理和运维。Docker 主要用于单主机上的容器管理,而 Kubernetes 则专注于跨多主机的容器编排与调度。尽管 k8s 逐渐减少了对 Docker 作为容器运行时的支持,但 Doc
73 5
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
|
3天前
|
NoSQL 关系型数据库 Redis
《docker高级篇(大厂进阶):1.Docker复杂安装详说》包括:安装mysql主从复制、安装redis集群
《docker高级篇(大厂进阶):1.Docker复杂安装详说》包括:安装mysql主从复制、安装redis集群
38 14
|
15天前
|
关系型数据库 MySQL 数据库
docker高级篇(大厂进阶):安装mysql主从复制
docker高级篇(大厂进阶):安装mysql主从复制
90 24
|
15天前
|
Ubuntu Linux Docker
Ubuntu22.04上Docker的安装
通过以上详细的安装步骤和命令,您可以在Ubuntu 22.04系统上顺利安装
200 11
|
11天前
|
Unix Linux Docker
CentOS停更沉寂,RHEL巨变限制源代:Docker容器化技术的兴起助力操作系统新格局
操作系统是计算机系统的核心软件,管理和控制硬件与软件资源,为用户和应用程序提供高效、安全的运行环境。Linux作为开源、跨平台的操作系统,具有高度可定制性、稳定性和安全性,广泛应用于服务器、云计算、物联网等领域。其发展得益于庞大的社区支持,多种发行版如Ubuntu、Debian、Fedora等满足不同需求。
39 4
|
24天前
|
监控 NoSQL 时序数据库
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
183 77