Docker 中的 PhpMyAdmin 如何管理宿主机上的 Mysql?

232 阅读1分钟

有这样一个需求:我的 Mysql 安装在宿主机上,我并不想让他跑在 Docker 上,因为 Docker 需要耗费大量内存。

但是,与此同时,我又有管理 Mysql 数据库的需求,那么这个时候,我要如何让运行在 Docker 内的 PMA 能够访问我宿主机的 Mysql 呢?

参考了这篇文章: 【docker知识】从容器中如何访问到宿主机_docker容器访问宿主机_无水先生的博客-CSDN博客

启动容器的命令:

docker run -d -p 8888:80 --add-host host.docker.internal:host-gateway -e PMA_HOST=host.docker.internal:3306 -e PMA_USER=root -e PMA_PASSWORD=root phpmyadmin:latest

重点在于

--add-host host.docker.internal:host-gateway
-e PMA_HOST=host.docker.internal:3306

这两个参数。

--add-host 意味着修改容器内的 hosts 文件,让 host.docker.internal 这个域名指向 docker 网关,通过 docker 网关即可访问宿主机。

-e PMA_HOST=host.docker.internal:3306 指定了让 PMA 访问来自 host.docker.internal 这个域名的数据库,因此可以顺利访问到宿主机。