Watchtower Docker Portainer Overview

Watchtower docker portainer is one of the most popular combinations in homelab and self-hosted environments. Portainer is a web-based Docker management interface; Watchtower is the automation engine that keeps containers current. They serve different, complementary roles:

  • Portainer: Deploy, manage, view logs, and control containers via a GUI
  • Watchtower: Automatically update container images in the background

Neither replaces the other. Many teams deploy Watchtower as a stack inside Portainer, then use Portainer's log viewer to monitor Watchtower's update activity.

Deploy Watchtower via Portainer Stacks

The cleanest way to manage docker watchtower portainer is through Portainer's Stacks feature (equivalent to Docker Compose):

  1. Log into Portainer at http://your-host:9000
  2. Navigate to Stacks → Add Stack
  3. Give the stack a name: watchtower
  4. In the Web Editor, paste the following compose content:
version: "3.8"
services:
  watchtower:
    image: containrrr/watchtower
    container_name: watchtower
    restart: unless-stopped
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /etc/localtime:/etc/localtime:ro
    environment:
      - WATCHTOWER_CLEANUP=true
      - WATCHTOWER_POLL_INTERVAL=21600
      - WATCHTOWER_NOTIFICATIONS=slack
      - WATCHTOWER_NOTIFICATION_SLACK_HOOK_URL=https://hooks.slack.com/services/...
  1. Click Deploy the Stack

Watchtower is now running and will auto-update all containers managed by Portainer and any other Docker containers on the host.

Configure Watchtower Environment Variables via Portainer

Portainer's stack editor supports environment variables in two ways:

Option A — Inline in the Compose YAML: Add environment keys directly (shown above).

Option B — Portainer ENV file: Create environment variables in the "Environment variables" tab below the editor. This is more secure for sensitive values like Slack webhook URLs.

# In the Portainer env tab, add:
WATCHTOWER_CLEANUP=true
WATCHTOWER_POLL_INTERVAL=21600
WATCHTOWER_NOTIFICATION_SLACK_HOOK_URL=https://hooks.slack.com/services/...

Monitoring Watchtower in Portainer

To view watchtower docker logs through the Portainer web interface:

  1. Go to Containers in Portainer
  2. Find the watchtower container
  3. Click the container name, then click Logs
  4. Enable Auto-refresh logs to watch updates in real time

You'll see log entries like:

time="2026-05-26" level=info msg="Checking all containers"
time="2026-05-26" level=info msg="Found new portainer/portainer-ce:latest image"
time="2026-05-26" level=info msg="Stopping /portainer"
time="2026-05-26" level=info msg="Creating /portainer"
⚠️
Will Watchtower update Portainer itself? Yes — by default, Watchtower updates all running containers including Portainer. To prevent this, add com.centurylinklabs.watchtower.enable=false as a label to your Portainer container, or use Portainer's built-in update mechanism instead.

Watchtower Docker Web Interface via Portainer

While Watchtower itself has no built-in docker watchtower ui or watchtower docker web interface, Portainer fills this gap completely. Through Portainer you can:

  • View all container statuses and update logs
  • Manually trigger a Watchtower run via the exec console
  • Update Watchtower's environment variables by editing the Stack
  • See which image versions each container is running

Excluding Portainer from Watchtower Updates

To prevent Watchtower from auto-updating Portainer (recommended for stability), add a label to your Portainer deployment:

services:
  portainer:
    image: portainer/portainer-ce:latest
    container_name: portainer
    restart: unless-stopped
    ports:
      - "9000:9000"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - portainer_data:/data
    labels:
      - "com.centurylinklabs.watchtower.enable=false"  # Don't auto-update portainer

Frequently Asked Questions

Should I use Portainer or Watchtower?

Both. They serve different purposes. Portainer is a Docker management GUI for deploying, monitoring, and controlling containers. Watchtower is an automation tool for keeping container images updated. Use Portainer to manage and observe your Docker environment, and Watchtower to handle automatic image updates in the background.

Does Watchtower have its own GUI?

No. Watchtower is a headless background service with no built-in web UI. Monitoring is done through Docker logs. For a GUI, use Portainer (container management) or What's Up Docker (image update notifications with a web UI). Watchtower's Watchtower platform (this site) provides a premium monitoring dashboard above and beyond what the open-source tool offers.

Can Watchtower update containers deployed by Portainer?

Yes. Watchtower monitors all running containers at the Docker daemon level, regardless of which tool deployed them. Containers deployed by Portainer, docker run, docker compose, or any other method are all visible to and updatable by Watchtower.

MC
Marcus Carter
Platform Engineer · Portainer Business certified
Marcus has deployed and managed Portainer across 100+ enterprise and homelab Docker environments. He runs the popular "Docker Homelab" community and has documented the Portainer + Watchtower integration pattern since Portainer v2.0.