Watchtower Docker
Automate container

Watchtower automatically updates your running Docker containers whenever a new image is pushed. Zero downtime, zero hassle.

terminal
$ docker run -d \
  --name watchtower \
  -v /var/run/docker.sock:/var/run/docker.sock \
  container/watchtower
    

10M+

Docker Pulls

5K+

GitHub Stars

99.9%

Uptime

10M+

Docker Pulls

Everything You Need for
Container Management

Powerful features designed to keep your Docker infrastructure secure, updated, and running efficiently.

Automatic Updates

Watchtower monitors your containers and automatically pulls new images when available, keeping your stack up-to-date.

Learn more ➡️

Graceful Shutdowns

Sends SIGTERM signals to containers before updating, ensuring graceful shutdown and data integrity. .

Learn more ➡️

Zero Downtime

Intelligent restart policies minimize downtime during updates, keeping your services running smoothly. .

Learn more ➡️

Scheduled Updates

Configure update schedules with cron expressions to update containers during low-traffic periods. .

Learn more ➡️

Link Awareness

Understands container dependencies and updates them in the correct order to prevent service disruptions. .

Learn more ➡️

Private Registries

Full support for private Docker registries with secure credential management. .

Learn more ➡️

Simple, Automated
Container Updates

Watchtower works silently in the background, ensuring your containers are always up-to-date.

Monitor 01

Watchtower continuously polls Docker registries for new versions of your container images.

Pull 02

When a new image is detected, Watchtower automatically pulls the latest version.

Restart 03

Gracefully stops the old container and starts a new one with the exact same configuration.

Cleanup 04

Optionally removes old images to free up disk space and keep your system clean.

Configuration

Deploy in Seconds

Get started with a single command. Watchtower integrates seamlessly with your existing Docker infrastructure.
				
					docker run -d \
  --name watchtower \
  -v /var/run/docker.sock:/var/run/docker.sock \
  containrrr/watchtower
				
			
				
					version: '3'
services:
  watchtower:
    image: containrrr/watchtower
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    command: --cleanup=true
    restart: always
				
			
				
					docker run -d \
  --name watchtower \
  -v /var/run/docker.sock:/var/run/docker.sock \
  containrrr/watchtower \
  --schedule "0 0 4 * * *"
				
			

Frequently Asked Questions

Everything you need to know about Watchtower and Docker container updates.

How does Watchtower detect new images?

Watchtower periodically polls the Docker registry for each container’s image. By default, it checks every 24 hours, but you can configure this interval using the –interval flag or set a cron schedule.

By default, Watchtower monitors all running containers. You can exclude specific containers using labels or the –label-enable flag to only update containers that opt-in.
Yes! Watchtower supports private Docker registries. You can configure credentials by mounting a config.json file or using environment variables for registry authentication.
Watchtower preserves your container’s volumes and network configuration. Only the container itself is replaced with the new image. All mounted volumes remain intact.
Absolutely! Use the –schedule flag with a cron expression to define when Watchtower should check for updates. For example: –schedule “0 0 4 * * *” checks at 4 AM daily.
Watchtower is widely used in production environments. However, we recommend testing updates in staging first and using features like –monitor-only to review available updates before applying them.
Scroll to Top