Find the ip address running this command:
ip addr show docker0 | grep inetThis 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 phpmyadminRun phpmyadmin in arbitrary mode
docker run --name phpmyadmin --rm -e PMA_ARBITRARY=1 -p 8080:80 phpmyadminGo 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.0You can confirm it from MySQL query also:
SHOW GLOBAL VARIABLES LIKE 'bind_address';
SELECT user, host from mysql.user;