keepcalculator

06 Numbers and Powers

What’s Up Docker: Track Container Updates

Card No. 06·52068 · Updated · Standard formula, shown below

What’s Up Docker is a self-hosted web tool that watches your Docker containers and tells you when a newer image version is available, then optionally updates them for you. You point it at your Docker host, it checks the registries for each running container’s image, and it shows a clear list of which containers are up to date and which have updates pending. This article explains how it works, how to set it up, and what to watch out for.

Why You Need Update Tracking

Docker images are published frequently—sometimes several times a week for popular projects like Nginx, Postgres, or Home Assistant. If you never update, you miss bug fixes and security patches. But manually checking every container’s image on Docker Hub is tedious and error-prone. What’s Up Docker automates that check and gives you a dashboard with the status of every container.

It’s similar to tools like Watchtower, but with a key difference: What’s Up Docker is a monitoring and notification tool first, with optional auto-update, while Watchtower is primarily an auto-updater. Many users run both—What’s Up Docker for visibility, Watchtower for unattended updates—but you can also let What’s Up Docker handle updates itself.

How What’s Up Docker Works

What’s Up Docker runs as a container itself. You give it access to your Docker socket (or a remote Docker API), and it periodically performs these steps:

  • List all running containers on the host.
  • For each container, read the image name and tag (e.g., nginx:latest).
  • Query the image registry (Docker Hub, GHCR, etc.) for the digest of the latest version of that tag.
  • Compare the local image digest with the remote digest.
  • If they differ, mark the container as “update available” and show the new version.

The tool uses the Docker Registry API to fetch digests. It does not pull the image unless you ask it to. The default check interval is 5 minutes, but you can configure it from 1 minute to 24 hours.

You can run it on the same host as your containers, or on a separate machine that has network access to the Docker API. For remote hosts, you need to expose the Docker socket over TCP with TLS, which is more complex but doable.

Setting Up What’s Up Docker

Installation is straightforward if you use Docker Compose. Here’s a minimal docker-compose.yml:

version: '3'
services:
  whats-up-docker:
    image: fmartinou/whats-up-docker
    container_name: whats-up-docker
    ports:
      - "8000:8000"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./data:/data
    environment:
      - TZ=Europe/Paris
    restart: unless-stopped

Then run docker-compose up -d and open http://your-server:8000. The first screen asks you to configure the Docker connection. If you mounted the socket, just click “Local” and it connects.

After that, you’ll see a dashboard listing your containers. For each one, it shows:

  • Container name and image
  • Current version (from the container’s image tag)
  • Latest version available
  • Update status (up to date, update available, or unknown)

You can click on a container to see details and trigger an update manually. The tool can also send notifications via email, Slack, Discord, Telegram, and many other services.

Choosing What to Update

Not all containers should be auto-updated. Some images are stable and you want to control when they change. What’s Up Docker lets you set per-container policies:

  • Monitor only: just show if an update exists.
  • Manual update: you click a button to update.
  • Auto-update: the tool pulls the new image and recreates the container automatically.

For auto-update, you can also choose to update only patch versions (e.g., 1.2.3 to 1.2.4) or allow minor/major updates. This is important because major updates often break configuration.

A common mistake is to auto-update everything with :latest tags. That can lead to unexpected breaking changes. It’s safer to use specific version tags for production containers and only auto-update test environments.

Common Problems and Solutions

Here are issues users frequently run into:

  • Can’t connect to Docker socket: Ensure the socket is mounted correctly and the container has permission. On some systems, you may need to add user: root to the compose file.
  • Images not showing updates: If an image uses a tag like latest, the tool compares digests, which is accurate. But if the image is from a private registry, you need to configure credentials in What’s Up Docker.
  • Update fails: Check the logs of the container. Often it’s due to a missing health check or a container that can’t be recreated because of volume conflicts.
  • Notifications not arriving: Test the notification service in the settings. For email, make sure your SMTP server allows relaying.

Alternatives and Comparisons

What’s Up Docker is not the only option. Here’s a quick comparison:

  • Watchtower: Focuses on automatic updates. It has a simple CLI and can send notifications, but its UI is minimal. What’s Up Docker gives you a web dashboard and more granular control.
  • Diun: A lightweight CLI tool that only checks for image updates and sends notifications. No web UI, no auto-update.
  • Portainer: A full container management UI that shows image updates as part of its interface. It’s heavier and more complex.

What’s Up Docker strikes a balance: it’s lightweight, has a clean web UI, and offers both monitoring and optional auto-update.

Security and Best Practices

Exposing your Docker socket to any container is a security risk. The socket gives full root access to the host. What’s Up Docker needs it to work, but you should:

  • Run it on a trusted network, not on a public IP.
  • Use a firewall to restrict access to port 8000.
  • Consider using a read-only socket mount if your Docker version supports it (though the tool may need write access for updates).

Also, always back up your container configurations and volumes before enabling auto-update. A bad update can break your service. The tool has a “rollback” feature that can revert to the previous image, but it’s not always perfect.

Frequently Asked Questions

Does What’s Up Docker work with Docker Compose? Yes, it sees all running containers regardless of how they were started. It can even update containers that were created by Compose, but the update will not modify the docker-compose.yml file—you’ll need to update that manually to keep your setup reproducible.

Can I monitor containers on a remote Docker host? Yes. You need to enable the Docker API on the remote host and configure the connection in What’s Up Docker. Use TLS to encrypt the connection, as the API is powerful and should not be exposed unsecured.

What happens if an updated container fails to start? What’s Up Docker will show the container as unhealthy. You can manually revert to the previous image by pulling the old tag and recreating the container. The tool also has a “rollback” button that attempts to use the previous image.

Does it update containers that use :latest tag? Yes, it compares the digest of the local latest image with the remote digest. If they differ, it marks it as update available. However, with latest, you can’t control the version, so it’s risky for production.

How often does it check for updates? The default is every 5 minutes. You can change it in the settings, but be aware that frequent checks increase load on the registry API and may hit rate limits.

Is What’s Up Docker free? Yes, it’s an open-source project. You can self-host it without any cost. There’s no paid tier or cloud service.

Related

Method: the standard formula for this calculation, rounded as each result states. See how the calculators work or report an error.

More cards in this drawer

The whole Numbers and Powers drawer →