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:
-
Create a Docker network for PMM and Watchtower:
docker network create pmm-network
-
(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
-
-
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:
-
Access the PMM interface in your browser:
https://SERVER_IP_ADDRESS
(replace with your server’s address) -
Log in with default credentials:
admin
/admin
. -
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 thedocker 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)
- via Docker: add
-
Enable HTTP (insecure, NOT recommended): add
--publish 80:8080
to thedocker run
command.
Warning
PMM Client requires TLS to communicate with PMM Server, only working on a secure port.