通过Docker为MySQL安装phpMyAdmin管理界面

前言

Docker是一个开源的应用容器引擎,它能够实现应用部署的自动化。此外,容器是完全使用沙箱机制,容器之间的环境相互独立,不会相互干扰。

phpMyAdmin能够为你的MySQL提供直观、方便的Web管理界面,非常好用。

在这里,由于我不想让phpMyAdmin的PHP、Apache环境与服务器上原有环境混杂到一起,因此采用Docker+phpMyAdmin的方式。

1. 修改MySQL配置

和远程访问一个道理,要想从容器中的phpMyAdmin访问运行在服务器上的MySQL,必须先修改MySQL配置文件,允许非localhost的IP访问。

打开/etc/mysql/mysql.conf.d/mysqld.cnf配置文件,进行如下修改:

bind-address = localhost
# 找到上式,修改为
bind-address = xxx.xx.xx.x # 你的docker0的ip地址
# 或者修改为
bind-address = 0.0.0.0 # 表示允许任意ip地址访问

然后,还需要将你的账号也设置为允许从远程登陆(默认为localhost)。为了完成这一操作,先通过localhost登入mysql,更改mysql数据库里的user表里对应你账号的host项,从localhost改成%。具体操作如下:

# 使用mysql数据库
use mysql;
# 将root账号(可替换成其他)的host修改为%
update user set host = '%' where user = 'root';
# 查看修改结果
select host, user from user;

最后,不要忘记重启mysql:sudo service mysql restart

至此,你的MySQL和对应账号已经开放了从Docker容器中访问的权限。

2. 创建phpMyAdmin镜像
# PMA_HOST设置为连接的MySQL主机名或ip地址
# PMA_PORT设置为端口号
# 8080:80,将宿主机的8080端口映射到镜像的80端口
docker run -d \
    --name myadmin \
    -e PMA_HOST=$(ip route show | grep docker0 | awk '{print $9}') \
    -e PMA_PORT=3306 \
    -p 8080:80 \
    phpmyadmin/phpmyadmin

值得一提的是,这里是通过桥接网络模式(bridge mode)运行的镜像,因此在镜像中可通过docker0访问宿主网络。

3. 访问数据库

此时,可以通过8080端口访问到phpMyAdmin的管理界面了,即http://your_domain_name:8080/

4. One More Thing

把MySQL随意地暴露在网络下无疑会带来安全隐患,从安全角度考虑,应该为防火墙设置白名单规则,只有白名单的IP才能够连接数据库。

# ufw防火墙,提供一个参考思路而已
ufw insert 1 allow from 172.17.0.3 to any port 3306
参考

博客原文链接:https://blog.heyblack.top/How-to-install-phpMyAdmin-with-Docker-for-your-MySQL.html

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值