Docker is a powerful platform that simplifies application deployment by packaging software into containers. If you’re a developer or system administrator looking to manage MySQL databases, phpMyAdmin is a popular web interface that makes database management easier. In this article, we’ll guide you through setting up phpMyAdmin using Docker.
Why Use Docker for phpMyAdmin?
- Portability: Docker containers run consistently across environments.
- Ease of Setup: Quickly deploy phpMyAdmin without complex installation steps.
- Isolation: Ensures phpMyAdmin runs in a dedicated environment, minimizing conflicts.
Create directory
/home/xna/phpmyadmin/
└── phpmyadmin/
└── docker-compose.yml
└── .env
└── .htpasswd
create .htpasswd
# leave it blank
create .env file
APP_PORT=8014
PMA_HOST=172.17.0.1 # or localhost depends on your connection
PMA_PORT=3306
PMA_USER="root"
PMA_PASSWORD="iniP@ssw0rdm2024"
create docker-compose.yml
services:
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: phpmyadmin
environment:
PMA_HOST: ${PMA_HOST}
PMA_PORT: ${PMA_PORT}
MYSQL_ROOT_PASSWORD: ${PMA_PASSWORD}
ports:
- "${APP_PORT}:80"
volumes:
- ./home/xna/phpmyadmin/.htpasswd
restart: unless-stopped
Build container
docker compose up -d

Login with your creds

Additional docker-compose with mariadb inside
services:
db:
image: mariadb:10.5
container_name: mariadb
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: iniP@ssw0rdm2024
MYSQL_DATABASE: xna
MYSQL_USER: root
MYSQL_PASSWORD: iniP@ssw0rdm2024
volumes:
- ./db_data:/var/lib/mysql
networks:
- pma
ports:
- "3360:3306"
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: phpmyadmin
restart: always
environment:
PMA_HOST: db
MYSQL_ROOT_PASSWORD: iniP@ssw0rdm2024
PMA_PORT: 3306
PMA_ARBITRARY: 1
ports:
- 8018:80
networks:
- pma
depends_on:
- db
networks:
pma:
driver: bridge
#volumes:
# db_data: