Skip to content

Install PMM Server with Docker

Deploy PMM Server as a Docker container for a fast, flexible and isolated setup.

While PMM Server runs independently, we highly recommend that you streamline upgrades via the PMM user interface by installing Watchtower alongside PMM Server.

With Watchtower installed, you can easily update PMM Server directly from the Upgrade page or by clicking the Upgrade Now button on the Home dashboard.

Prerequisites

Before installation, ensure you have:

  • Docker version 17.03 or higher
  • CPU with x86-64-v2 support
  • Sufficient system resources (recommended: 2+ CPU cores, 4+ GB RAM, 100+ GB disk space)

Watchtower security requirements

To ensure a secure setup when using Watchtower:

  • Limit Watchtower’ access to Docker network or localhost
  • Configure network to ensure only PMM Server is exposed externally
  • Secure Docker socket access for Watchtower
  • Place both Watchtower and PMM Server on the same Docker network

Installation options

Container setup summary

Container setup at a glance

  • Pull the Docker image: docker pull percona/pmm-server:3
  • Choose storage: Docker volumes (recommended) or host directory
  • Run the container: Using the appropriate docker run command
  • Access the UI: Navigate to https://SERVER_IP_ADDRESS in your browser
  • Log in: Default credentials admin / admin

Install PMM Server + Watchtower

You can install PMM Server with Watchtower using one of two methods:

The Easy-install script simplifies setup by including Watchtower commands, enabling a one-step installation of PMM with Watchtower. Run the following command:

curl -fsSL https://www.percona.com/get/pmm | /bin/bash

For a more customizable setup, follow these steps:

  1. Create a Docker network for PMM and Watchtower:

    docker network create pmm-network
    

  2. (Optional but recommended) Install Watchtower to enable PMM Server upgrades via the UI:

    • Create a user-defined token to secure Watchtower’s HTTP API. You can use any value or generate a secure token using openssl or another method. Ensure the same token is used in both the Watchtower and PMM Server configurations:

      openssl rand -hex 16
      # Example output:
      e09541c81e672bf0e48dbc72d4f92790
      
    • Install Watchtower using your token:

      docker run --detach \
      --restart always \
      --network=pmm-network \
      -e WATCHTOWER_HTTP_API_TOKEN=your_token \
      -e WATCHTOWER_HTTP_API_UPDATE=1 \
      --volume /var/run/docker.sock:/var/run/docker.sock \
      --name watchtower \
      percona/watchtower:latest
      
  3. Run PMM Server with Docker based on your preferred data storage method:

Configuration options

Storage configuration

You can choose PMM Server offers two storage options:

Option Suitable for Command
Docker volumes (Recommended) Production environments --volume pmm-data:/srv
Docker volumes Development/testing --volume /path/on/host:/srv

Environment variables

Configure PMM Server’s behavior using environment variables:

docker run -e PMM_DATA_RETENTION=720h -e PMM_DEBUG=true percona/pmm-server:3

Common variables:

Variable Default Description
PMM_DATA_RETENTION 30d Duration to retain metrics data
PMM_METRICS_RESOLUTION 1s Base metrics collection interval
PMM_ENABLE_UPDATES true Allow version checks and UI updates
PMM_ENABLE_TELEMETRY true Send usage statistics

For a complete list, see the full environment variables list.

Accessing PMM Server

After installation:

  1. Access the PMM interface in your browser: https://SERVER_IP_ADDRESS (replace with your server’s address)

  2. Log in with default credentials: admin / admin.

  3. Change the default password on first login.

Advanced configuration

After basic installation, you may want to customize your PMM Server setup:

Security options

  • Configure a trusted SSL certificate to remove browser warnings.
  • Disable the upgrade panel if needed:

    • via Docker: add -e PMM_ENABLE_UPDATES=false to the docker run command (for the life of the container)
    • via UI: go to PMM Configuration > Settings > Advanced Settings and disable Check for Updates (can be turned back on by any admin in the UI)
  • Enable HTTP (insecure, NOT recommended): add --publish 80:8080 to the docker run command.

Warning

PMM Client requires TLS to communicate with PMM Server, only working on a secure port.

Next steps