Find the ip address running this command:
ip addr show docker0 | grep inet
This will be the PMA_HOST in below steps. The PMA_HOST of local machine is like this: 172.17.0.1
use this command to create a user for phpmyadmin login
CREATE USER 'phpmyadmin'@'%' IDENTIFIED BY 'P@ssw0rd123';
GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'%' WITH GRANT OPTION;
Now, run phppmyadmin on docker.
You can achieve this in two ways. Choose only one approach.
To connect local mysql from phpmyadmin on docker. Run this:
docker run --name phpmyadmin --rm -e PMA_HOST=172.17.0.1 -p 8080:80 phpmyadmin
Run phpmyadmin in arbitrary mode
docker run --name phpmyadmin --rm -e PMA_ARBITRARY=1 -p 8080:80 phpmyadmin
Go to localhost:8080 to login to phpmyadmin
Make sure the bind address of mysql is 0.0.0.0
and the MySQL suser host is %
. Add or update /etc/mysql/my.cnf
of MySQL configuration.
[mysqld]
bind-address = 0.0.0.0
You can confirm it from MySQL query also:
SHOW GLOBAL VARIABLES LIKE 'bind_address';
SELECT user, host from mysql.user;