我们在云服务器上的mysql数据库在暴露端口和开启远程连接的情况下,是非常不安全的,昨天我的一台服务器就遭到了勒索病毒的攻击,让我支付0.06比特币赎回我的数据。还好那个库中没有重要数据,只是一个弃用了半年的数据库,密码我自己都忘记了,还好通过手段找回了密码,登上去之后就傻眼了。那么如果我们不想开启远程登录还想操作数据库,怎么办?怎么办?用phpmyadmin就可以解决了,不过phpmyadmin也有一定的风险,下面看下怎么玩。
使用docker发布phpmyadmin并且连接已经存在的mysql容器首先下载phpmyadmin的docker镜像
# 先查询镜像仓库里有哪些镜像docker search phpmyadmin# 拉取star最多的镜像or拉取你想用的镜像docker pull docker.io/phpmyadmin/phpmyadmin拉取镜像需要一段时间,这个要看服务器的带宽网速了
启动镜像,连接到已存在的mysql容器
# 启动镜像docker run --name myadmin -p 80:80 -d --link mysql-db:db docker.io/phpmyadmin/phpmyadmin# 修改容器配置文件## 将配置文件复制到宿主机中docker cp myadmin:/etc/phpmyadmin/config.inc.php .## 修改配置文件信息(这里修改的db就是在启动的时候--link后面指定的别名)$cfg['servers'][$i]['host'] = 'localhost' ——> $cfg['servers'][$i]['host'] = 'db'## 将修改后的配置文件复制回容器中docker cp ./config.inc.php myadmin:/etc/phpmyadmin/# 重启phpmyadmin容器
此处就可以连接了,当然你也可以修改配置文件限制连接的用户,然后在mysql中给连接用户授权
使用docker-compose创建安装docker-compose,这里就不赘述了,
编写docker-compose.yml文件
version: "2"services: mysql: image: hub.c.163.com/library/mysql container_name: test-mysql restart: always ports: - "3306:3306" environment: mysql_user: "root" mysql_password: "root" mysql_root_password: "root" networks: - net-mysql phpmyadmin: image: docker.io/phpmyadmin/phpmyadmin container_name: test-myadmin ports: - "80:80" environment: mysql_user: "root" mysql_password: "root" mysql_root_password: "root" networks: - net-mysqlnetworks: net-mysql:
发布容器
# 使用命令发布容器docker-compose up -d
然后就可以使用了,不需要修改任何配置文件
推荐学习:《php视频教程》
以上就是一分钟学会docker安装phpmyadmin(分享)的详细内容。
