Navigate:
Watchtower
~$WATCH0.1%

Watchtower: Automates Docker container base image updates

Automated Docker container updates via registry polling.

LIVE RANKINGS • 12:29 PM • STEADY
OVERALL
#341
50
CLOUD & DEVOPS
#25
9
30 DAY RANKING TREND
ovr#341
·Cloud#25
STARS
24.5K
FORKS
1.1K
7D STARS
+22
7D FORKS
+5
See Repo:
Share:

Learn more about Watchtower

Watchtower is a containerized process written in Go that automates the update cycle for Docker containers by monitoring image registries for changes. It works by periodically checking for new versions of container images, then orchestrating the replacement of running containers with updated versions while preserving their deployment parameters. The tool integrates with the Docker daemon through the Docker socket and supports multiple notification backends for alerting users to update events. It is designed for homelab and local development environments rather than production Kubernetes deployments.

Watchtower

1

Automated Image Monitoring

Polls Docker Hub and private registries on configurable schedules to detect new image versions. Eliminates manual update checks and CI/CD dependencies for homelab and local development workflows.

2

Container State Preservation

Captures and reapplies original deployment configuration during updates, including environment variables, volumes, and port mappings. Containers restart with updated images without manual reconfiguration.

3

Multi-Channel Notifications

Integrates with multiple notification backends to alert on update events. Provides visibility into automated container replacements across different communication platforms.


package main

import (
    "github.com/containrrr/watchtower/pkg/container"
    "github.com/docker/docker/client"
)

func main() {
    dockerClient, _ := client.NewClientWithOpts(client.FromEnv)
    containers, _ := container.ListContainers(dockerClient, container.Filter{})
    
    for _, c := range containers {
        if c.IsWatchtowerLabel() {
            c.UpdateImage(dockerClient)
        }
    }
}

vv1.7.1

This release fixes instance cleanup without scope functionality.

  • fix: instance cleanup without scope
vv1.7.0

This release adds support for 'none' scope, container exclusion by name, and improved documentation with output messages.

  • feat: add linking and output messages
  • feat: add support for 'none' scope
  • feat: Add a flag/env to explicitly exclude containers by name
  • fix: set nopull param from args
  • fix: handle missing healthcheck keys in config
vv1.6.0

This release adds a new --health-check command line switch for improved container health monitoring.

  • feat: add --health-check command line switch


[ EXPLORE MORE ]

Related Repositories

Discover similar tools and frameworks used by developers