Watchtower: Automates Docker container base image updates
Automated Docker container updates via registry polling.
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.
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.
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.
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)
}
}
}This release fixes instance cleanup without scope functionality.
- –fix: instance cleanup without scope
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
This release adds a new --health-check command line switch for improved container health monitoring.
- –feat: add --health-check command line switch
Related Repositories
Discover similar tools and frameworks used by developers
Upload Artifact
Store workflow files as versioned zip artifacts.
Dockge
Self-hosted Docker Compose manager with real-time terminal streaming.
ProxmoxVE
Bash scripts for automated Proxmox LXC/VM provisioning.
Azure CLI
Cross-platform CLI for managing Azure resources through commands and automation scripts.
Kaniko
Daemon-free Docker image builder for Kubernetes clusters.
Related Reading
Guides and comparisons from the Greptile content library
What is a pull request & why is it important for code reviews?
Pull requests protect your codebase, but traditional PR workflows are becoming the bottleneck as AI writes more code. Learn what pull requests are, how to create one, and how to automate PR review so velocity and trust scale together.
27 Code Quality Tools that Catch Bugs [2026 Review]
The best code quality tools that catch bugs, security vulnerabilities, and runtime errors, sorted by language, with type, noise level, cost, and who each one is for.
Best AI Code Review Tools for GitLab
Enterprise-grade AI code review tools for GitLab teams. In-depth comparison of accuracy, security, and integration features to accelerate your merge request workflows.
API Security: What It Is, Why It Matters, and 7 Best Practices for 2026
What API security is, the OWASP API Security Top 10 risks with real examples from open source PRs, seven best practices to start with, and how to test your APIs with static scanning, dynamic testing, and runtime validation.