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)
}
}
}a047c7f fix: instance cleanup without scope (#1836)
- –`docker pull containrrr/watchtower:i386-1.7.1`
- –`docker pull containrrr/watchtower:i386-latest`
- –`docker pull ghcr.io/containrrr/watchtower:i386-1.7.1`
- –`docker pull ghcr.io/containrrr/watchtower:i386-latest`
- –`docker pull containrrr/watchtower:amd64-1.7.1`
v1.7.0
- –097df11 feat(docs): add linking and output messages (#1831)
- –dd54055 feat: add support for "none" scope (#1800)
- –623f4e6 feat(filters): Add a flag/env to explicitly exclude containers by name (#1784)
- –48539c4 fix: set nopull param from args (#1830)
- –c4d4938 fix: handle missing healthcheck keys in config (#1810)
8e3bde7 feat: add --health-check command line switch (#1725)
- –`docker pull containrrr/watchtower:i386-1.6.0`
- –`docker pull containrrr/watchtower:i386-latest`
- –`docker pull ghcr.io/containrrr/watchtower:i386-1.6.0`
- –`docker pull ghcr.io/containrrr/watchtower:i386-latest`
- –`docker pull containrrr/watchtower:arm64v8-1.6.0`
Top in Cloud & DevOps
Related Repositories
Discover similar tools and frameworks used by developers
dockge
Self-hosted Docker Compose manager with real-time terminal streaming.
build-push-action
GitHub Action for building and publishing Docker images.
Proxmox VE Helper-Scripts
Shell scripts that automate Linux container and VM creation on Proxmox VE with interactive configuration dialogs.
kaniko
Daemon-free Docker image builder for Kubernetes clusters.
kubespray
Production-grade Kubernetes deployment via Ansible playbooks.