前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >使用 Docker 部署 phpmyadmin 应用

使用 Docker 部署 phpmyadmin 应用

作者头像
用户1560186
发布于 2020-01-02 08:23:04
发布于 2020-01-02 08:23:04
7.2K00
代码可运行
举报
文章被收录于专栏:运维录运维录
运行总次数:0
代码可运行
《复仇者联盟4:终局之战》右手暴风战斧,左手雷神锤
开始之前

phpmyadmin 是一个使用PHP语言开发的工具软件,可以通过web方式操作mysql数据库,例如添加、查询、变更、删除数据等。

容器时代之前,我们部署 phpmyadmin 应用,需要先准备好php 程序运行环境、然后下载源码、配置数据库等,最后完成部署工作。

在容器时代,部署 phpmyadmin 应用则变得简单,下载 phpmyadmin 官方提供的 Docker镜像,然后运行容器就可以了。例如运行一个 phpmyadmin 容器。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 运行容器自动下载镜像,仓库在国外时间可能较长
# PMA_HOST变量,指 mysql服务器地址
docker run --name myadmin -d \
    -e PMA_HOST=mysql-server-host \
    -p 8080:80 \
    phpmyadmin/phpmyadmin
环境描述
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
容器镜像: phpmyadmin:latest
容器系统: debian 9 (stretch)
Docker主机: Ubuntu Server 16.04
应用策略: 仅为测试环境提供 phpmyadmin 工具。

注意事项: 为了数据安全限制了使用条件:

  • 仅允许办公室IP通过防火墙
  • 禁止 mysql root账户登录。
  • 仅允许指定账户ruser(这里是只读)登录。
操作步骤

因为增加了限制规则,所以我们需要定制 phpmyadmin 镜像,附加修改后 config.inc.php 配置文件。

1. 镜像构建目录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tree ./
├── conf
│   └── config.inc.php
└── Dockerfile

1 directory, 2 files

2. 修改配置文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 配置文件从 phpmyadmin 容器中获得:
# docker run --rm phpmyadmin:latest cat /etc/phpmyadmin/config.inc.php >> config.inc.php

# 编辑 config.inc.php
# 查找 $cfg['Servers'][$i]['AllowNoPassword'] 行
# 并添加以下行,ruser 替换自己的只读用户
        $cfg['Servers'][$i]['AllowRoot'] = false;
        $cfg['Servers'][$i]['AllowDeny']['order'] = 'explicit';
        $cfg['Servers'][$i]['AllowDeny']['rules'] = array('allow ruser from all');

MySQL 授权语句可以参考这篇文章

3. Dockerfile 文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cat Dockerfile

# custom phpmyadmin

FROM phpmyadmin/phpmyadmin
MAINTAINER dongnan #<@微信公众号:运维录>

# configure file
COPY conf/config.inc.php /etc/phpmyadmin/config.inc.php

# env
ENV TZ=Asia/Shanghai \
    LANG=en_US.UTF-8

4. 构建镜像

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker build -t myadmin:0.0.1 .
# 省略...
Successfully built d8241af7fac8

5. 运行容器根据实际环境,部署 phpmyadmin 容器。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 我的容器环境为 rancher:
选择项目 -> 添加服务 -> 指定镜像 -> 服务链接(别名) -> 目标服务(数据库) -> 名称(db)

# 名称配置为db 是因为 phpmyadmin 配置文件中mysql数据库主机名设置为 db。

6. 验证

a. 测试 root 用户,提示禁止登录;

b. 测试指定的用户 ruser ,允许登录;

参考文章
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://hub.docker.com/r/phpmyadmin/phpmyadmin
https://stackoverflow.com/questions/2631269/how-to-secure-phpmyadmin
https://docs.phpmyadmin.net/en/latest/setup.html#installing-using-docker
小结

最后来总结下文章中的知识点

  • phpmyadmin 是一个使用PHP语言开发的工具软件,可以通过web方式操作mysql数据库
  • http协议明文传输,通过使用 https 协议加密数据,避免此问题。
  • 服务器暴漏在公网,被恶意扫描渗透等攻击行为,通过防火墙白名单机制解决 因为 phpmyadmin 只面向公司特定的人员开放,所以防火墙仅信任他们的IP即可。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-12-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维录 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
phpMyAdmin安装教程
phpmyadmin是一款mysql数据库管理工具,是由php编写的,可以通过互联网控制和操作mysql,通过phpmyadmin可以完全对数据库进行操作,例如建立、复制/删除数据等等。
全栈程序员站长
2022/09/05
3.6K0
phpMyAdmin安装教程
phpMyadmin 服务简单安全加固
简单几招,轻轻松松实现安全加固: 1. 网络访问控制策略 限制访问人员 IP 配置 phpMyadmin。 您可以使用云服务器提供的 安全组防火墙策略 对访问源 IP 地址进行限制,避免不必要的人员访问数据库管理后台。 phpMyadmin 也默认提供了访问控制功能,具体配置如下: 进入 phpMyAdmin 目录,找到 config.inc.php,如果没有,可以将根目录下的config.sample.inc.php 复制为 config.inc.php。 编辑 config.inc.php,添加下面两行
老七Linux
2018/05/31
1.2K0
Docker 容器分离部署LNMP架构
3、运行MySQL容器 由于在生产环境中,大多数公司十分忌讳将MySQL这样的服务放在虚拟化的技术上运行,一般都是单独一台服务器,只跑MySQL服务,所以,这里为了简便一些,直接运行MySQL容器即可,就不去做这个MySQL数据的持久化了(主要是懒的找是那些目录要实现数据持久化了)
小手冰凉
2020/08/10
2.4K1
Docker 容器分离部署LNMP架构
Docker搭建WordPress博客
  WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站。也可以把WordPress当作一个内容管理系统(CMS)来使用。一般的安装方法是,准备一个服务器,在服务器上分别安装配置PHP、MySQL、Apache/NGINX,然后下载WordPress安装包,再进行编译安装。而采用Docker方式部署可以简化配置环境。
LuckySec
2022/11/02
6290
mysql中phpmyadmin安装教程_phpMyAdmin 安装教程全攻略「建议收藏」
管理MYSQL数据库的最好工具是PHPmyAdmin,现在最新版本是phpMyAdmin 2.9.0.2,这是一个国际上开源的软件,一直在更新版本,你可以从 http://www.phpmyadmin.net 官方网站上下载到,安装后可以远程更新数据库(其实是在服务器上安装)。
全栈程序员站长
2022/09/04
1.2K0
飞牛 fnos 使用docker部署兰空图床(lsky-pro)
这次部署的是一个图床(Lsky-Pro),可以让你的图片用链接的方式出现,可以使用在你的博客上面,这个图床还需要使用数据库来存储数据所以我们这里就要部署两个容器
季春二九
2025/01/10
4580
飞牛 fnos 使用docker部署兰空图床(lsky-pro)
phpmyadmin安装教程及配置设置
.一般网上下载到的phpmyadmin是一个压缩包,我们将其释放到htdocs目录中,例如htdocs\phpmyadmin。
全栈程序员站长
2022/09/05
2K0
Windowsserver2003下搭建IIS+PHP+MySQL+PHPmyadmin
安装IIS在这里不在赘述,重点配置iis解析php和phpmyadmin的配置 去这里http://www.php.net/下载php,我下载的是php-5.2.16-Win32-VC6-x86.zip 然后将文件解压到C盘下 将PHP目录(C:/PHP)下的 php.ini-dist 文件重命名为 php.ini 修改以下几个地方 extension_dir=”C:\php\ext” —指向php文件夹下放置“php_*.dll”文件的路径 default_charset=”utf-8″ ,修改默认字
苦咖啡
2018/05/07
1.6K0
Docker最全教程之使用PHP搭建个人博客站点(二十二)
PHP(全名:PHP: Hypertext Preprocessor)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
雪雁-心莱科技
2019/06/03
9150
Win2003 PhpMyadmin 安装笔记
2. 在D盘建立一下目录,hosting主要用于存放网站与网站日志,server主要用于存放mysql与其他软件。并将此两个目录给予IIS-WPG与Guests用户组可读,列出文件目录,读取权限。
SuperDream
2019/02/28
2.2K0
Win2003 PhpMyadmin 安装笔记
开启phpMyAdmin高级功能的设置方法
开启phpMyAdmin高级功能的设置方法 注:本文基于phpMyAdmin5.5 登录到phpMyAdmin以后,在主界面的底部,我们发现两条提示信息: 一条提示信息是“phpMyAdmin高级功能尚未完全设置,部分功能未激活。请点击这里查看原因”,另外一条信息是“配置文件现在需要一个短语密码。”。 一旦出现这两条信息,就意味着phpMyAdmin中的部分功能不能使用。解决这个问题的操作步骤分为三部分:上传create_tables.sql文件、配置config.inc.php文件和修改config.d
joshua317
2018/04/16
2K0
分布式 | DBLE 的 general 日志实现
爱可生 DBLE 团队开发成员,主要负责 DBLE 需求开发,故障排查和社区问题解答。
爱可生开源社区
2021/09/29
4360
分布式 | DBLE 的 general 日志实现
使用Docker快速搭建Nginx+PHP-FPM+MySQL+phpMyAdmin环境
fastcgi_pass 地址为:主机ip+9000。因为在上面的步骤中,我已经把端口映射出来了。
py3study
2020/05/26
2.9K0
使用Docker快速搭建Nginx+PHP-FPM+MySQL+phpMyAdmin环境
phpmyadmin安全配置小技巧
1. 版本:使用最新版本,同时phpmyadmin与DB服务器建议分离(即不在同一台服务器)。 官方下载地址 http://www.phpmyadmin.net/home_page/downloads
腾讯云安全
2018/06/12
2K0
LAMP环境搭建-MySQL 5.6
基本思路: 1. 安装httpd、MySQL、php-mysql及相关包 2. 启动httpd服务程 3. 解压phpMyAdmin包,部署到网站目录 4. 配置config.inc.php,指定MySQL主机地址 5. 浏览器访问、登录使用
星哥玩云
2022/06/30
1.1K0
用phpmyadmin修改数据库密码
前几天搭建服务数据库的的时候,用phpmyadmin登陆本地服务器显示:#1045 无法登录 MySQL 服务器。其实原因很简单,无法登陆可能是由于mysql为启动或者跟某些软件冲突了,具体的解决办法是:
李洋博客
2021/06/15
5.4K0
用phpmyadmin修改数据库密码
解决phpMyAdmin最大限制
phpMyAdmin使用方便,已成为大多数站长的常用工具,对于小型网站来讲phpmyadmin已经绰绰有余了,但是对于中大型网站,在数据库较为庞大的时候,phpmyadmin就显得力不从心了! 一般情况下,phpMyAdmin最大限制上传2M以内的文件,但是当网站运营一段时间后,即使把sql格式的数据库压缩成zip格式,想变成2M以内是不太现实的。 个人并不推荐使用phpMyAdmin来导入大数据库,因为大多数用户使用的是虚拟主机,很多文件没有服务器权限是无法修改的,而且phpmyadmin对大数据库的执行效率也非常低,容易出现错误。 <h3>导入大数据库的解决方案</h3>
李维亮
2021/07/09
2.4K0
使用PHP搭建个人博客站点
PHP(全名:PHP: Hypertext Preprocessor)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
心莱科技雪雁
2019/06/04
1.4K0
使用PHP搭建个人博客站点
LAMP及部署wordpress/phpMyadmin
引言 lamp含义:黄金组合。简要介绍一下下面这四个东西吧。linux,不用说了有很多发行版本,主流的三大版本是Debian系列,RedHat系列,slackware系列。apache,全称叫Apache HTTP Server,是世界使用排名第一的web服务器软件,httpd是超文本传输协议http服务器的主程序。可通过简单的API扩展,将PHP/Perl/Python等解释器编译到服务器中。PHP是全球最好的脚本语言,主要用于web开发,python是高级编程语言,功能也很强大。 mysql和maria
小小科
2018/05/04
1.6K0
LAMP及部署wordpress/phpMyadmin
Docker实战:Docker安装WordPress,快速搭建自己的博客
WordPress是一种基于php编程语言开发的CMS管理系统,WordPress有丰富的插件和模板,用户可以快速搭建一套功能十分强大的内容管理系统,使用WordPress可以做多种类型的网站,比如新闻发布网站、企业门户、个人技术博客等。
小明互联网技术分享社区
2023/10/31
3.2K0
Docker实战:Docker安装WordPress,快速搭建自己的博客
相关推荐
phpMyAdmin安装教程
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档