docker部署PMA(LNMP架构)
上篇文章中已经部署好php环境,测试也已经OK
centos 7 docker 启动了一个web服务 但是启动时 报
WARNING: IPv4 forwarding is disabled. Networking will not work.
网上查询了下 需要做如下配置
这篇文章来部署MySQL和PMA
1.下载Mysql镜像文件
使用以下命令从Docker镜像库中下载mysql镜像
docker pull mysql
等下载成功后可以使用以下命令查询结果
docker images
docker.io/mysql latest 5d4d51c57ea8 10 days ago 373.6 MB
2.启动Mysql容器
启动mysql容器的方法很简单,运行以下命令即可:
docker run --name=mysqlserver -itd -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root docker.io/mysql
命令参数说明
--name 给容器起一个别名,可选,如果不指定,则Docker会自动生成不规则的字符串表示
-i 指定容器可以交互,有了此选项后,可以使用docker attach等与容器进行交互
-p 映射宿主机与容器中服务端口
-e 设置容器运行所需要的环境变量MYSQL_ROOT_PASSWORD是mysql登录用户名密码。
d836227eeee1 docker.io/mysql "docker-entrypoint.sh" 19 minutes ago Up 19 minutes 0.0.0.0:3306->3306/tcp mysql
docker logs -f mysql

等待他启动完成,即可从本地登录。
3.访问Mysql数据库
由于我们在上面使用了-p参数映射了容器的3306端口到宿主机的3306端口,此时我们可以直接访问宿主机的3306端口来访问Docker中的mysql服务
mysql -h 127.0.0.1 -u root -p
tcp6 0 0 :::3306 :::* LISTEN 15653/docker-proxy-

密码为root(通过启动参数中的-e MYSQL_ROOT_PASSWORD=root 进行设定的)
- 限定只能通过宿主机访问mysql数据库
如果需要限定只能通过宿主机访问mysql数据库,可以使用 –p 127.0.0.1:3306:3306 参数 - 自定义mysql的配置及备份mysql数据
如果需要修改mysql容器中的mysql配置,可以在启动容器参数中增加-v参数,映射本地的目录或文件到mysql容器,覆盖容器中的某个文件或文件夹
生产环境中使用的命令:
docker run -a STDIN -a STDOUT -a STDERR --privileged=true --name=mysqlserver -v /data/mysql/my.cnf:/etc/mysql/my.cnf:ro -v /data/mysql/data/:/opt/mysql/data:rw -p 3306:3306 -e MYSQL_ROOT_PASSWORD=12345 mysql
4.部署PMA
使用php和mysql开发网站的话,phpmyadmin是一个非常友好的mysql管理工具,并且免费开源,国内很多虚拟主机都自带这样的管理工具,配置很简单,接下来在linux服务器上配置phpmyadmin来管理MySQL数据库
首先访问phpmyadmin官网首页,网址为:http://www.phpmyadmin.net/,进入之后有download按钮,先不要下载,因为下载下来是windows的zip包,点击导航栏的Download链接,进入下载界面
下载下来上传到服务器上,然后执行下面命令解压:
tar -xvzf phpMyAdmin-4.5.5.1-all-languages.tar.gz
解压完成之后,我们放到一个可被web访问到的目录下,后续方便管理,比如/home/wwwroot
mv phpMyAdmin-4.5.5.1-all-languages /var/www/html(这里是之前nginx映射到本地目录的根路径)
然后执行 cd/var/www/html 然后将phpmyadmin目录重命名,尽量不让别人猜出来入口,比如:
mv phpMyAdmin-4.5.5.1-all-languages pma
然后执行 cd pma 进入安装目录,最新版本的phpmyadmin支持快速配置,不用执行安装脚本,官方有快速安装中文文档:http://docs.phpmyadmin.net/zh_CN/latest/setup.html#quick-install
这时候可以看到目录下有一个配置文件:config.sample.inc.php
将这个文件拷贝一份:
cp config.sample.inc.php config.inc.php
然后执行编辑:
vim config.inc.php
找到$cfg['blowfish_secret']配置项,后面默认为空,这里我们可以随便设置一个复杂的字符串,用来加密使用:

然后$cfg['Servers'][$i]['auth_type']这一项默认为cookie,表示每次都要登录,我们不用修改,这样比较安全,然后$cfg['Servers'][$i]['host'] = '127.0.0.1';这里建议设置成IP地址,则无论是本地还是远程只要mysql授权都没有问题,默认localhost可能会出现#2002 - Permission denied — The server is not responding 这样的错误,一定要注意,建议使用IP地址

如果本地调试的话,那么这里要设置成config,然后在这里填上用户名和密码,每次就自动进入了,调试比较方便
总体就是设置上面的登录认证类型和IP地址共两项,设置完成保存并退出,然后通过web访问我们phpmyadmin的目录地址即可,比如放到了www.xxxx.com下,那么这个时候我们需要访问:http://www.xxxx.com/phpmyAdmina4689f,注意Linux服务器严格区分大小写,这个时候看到登录界面,phpmyadmin就配置好了

docker部署PMA(LNMP架构)的更多相关文章
- 使用docker部署nginx+tomcat架构(3):使用docker-compose简化部署操作
经历了之前的两篇,我们已经大体上了解了docker部署容器的过程. 使用docker部署nginx+tomcat架构 使用docker部署nginx+tomcat架构():访问mysql数据库 不过, ...
- 部署企业LNMP架构搭建bbs
部署企业LNMP架构 1===============部署Nginx 2===============安装及部署Mysql数据库 3===============安装PHP解析环境 4======== ...
- 使用docker部署nginx+tomcat架构(2):访问mysql数据库
上一篇完成了通过docker部署nginx+tomcat的基础软件架构,但是距离一个真正可用的软件架构还差得很远.其中最重要的一点是缺少数据库这个角色的存在,那么本篇就来完善这一点. 废话少说,直接进 ...
- 使用docker部署nginx+tomcat架构
架构说明: 使用nginx+tomcat实现动态/静态(资源请求)分离和负载均衡. 参考文档: https://www.runoob.com/docker/docker-tutorial.html 配 ...
- 部署LNMP架构及其应用
部署企业LNMP架构 (一)首先安装nginx服务,具体请见另一篇关于nginx的博文. (二)安装MySQL数据库 .安装前准备 [root@localhost ~]# rpm -e mysql-s ...
- 第20章 使用LNMP架构部署动态网站环境
章节概述: 本章节将从Linux系统的软件安装方式讲起,带领读者分辨RPM软件包与源码安装的区别.并能够理解它们的优缺点. Nginx是一款相当优秀的用于部署动态网站的服务程序,Nginx具有不错的稳 ...
- LNMP架构部署
第1章 部署LNMP架构步骤 1.1 ①部署Linux系统(OK) 基本优化完成(ip地址设置 yum源更新 字符集设置) 安全优化完成(iptables关闭 selinux关闭 /tmp/ 1777 ...
- Docker Swarm应用--lnmp部署WordPress
一.简介 目的:使用Docker Swarm 搭建lnmp来部署WordPress 使用Dockerfile构建nginx.php镜像 将构建的镜像上传docker私有仓库 使用volume做work ...
- 用lnmp架构部署wordpress网站详细步骤
用lnmp架构部署wordpress网站 ①.下载和上传网站代码 用winscp或者xftp, 或者xshell下执行rz命令进行上传网站的包文件. ②.解压程序代码,并将程序代码保存到站点目录,并进 ...
随机推荐
- 笔记+R︱Logistics建模简述(logit值、sigmoid函数)
本笔记源于CDA-DSC课程,由常国珍老师主讲.该训练营第一期为风控主题,培训内容十分紧凑,非常好,推荐:CDA数据科学家训练营 ---------------------------------- ...
- 用SDL库播放yuy2 Packed mode
#define SDL_YUY2_OVERLAY 0x32595559 /* Packed mode: Y0+U0+Y1+V0 */ if (SDL_Init(SDL_INIT_VIDEO) < ...
- Windows 7 蓝屏原因
Windows 7 蓝屏 Microsoft (R) Windows Debugger Version 6.11.0001.404 X86 Copyright (c) Microsoft Corpor ...
- (三十)java多线程一
我们通常在电脑中打开的应用称作进程,一个应用就是一个进程,而一个进程里边一般包含多个线程. 系统要为每一个进程分配独立的内存空间,而进程里的多个线程共用这些内存. 我们通常所写的main方法就是一个线 ...
- 检测dll是32/64位 ?
检测dll是32/64位 ? void CCheck32Or64Dlg::OnButton2() { CString fileName = ""; CFileDialog *fil ...
- AHCI模式安装XP以及驱动下载
一.准备AHCI驱动 1.关于AHCI基础知识,请参考<AHCI模式的驱动下载.安装及蓝屏问题综合>一文. 2.安装AHCI驱动之前,请先确认桌面上.系统盘没有重要的东西需要备份,因为如果 ...
- 如何给filter添加自定义接口及调用
本例子是在VirtualCamera的基础上添加的自定义接口用来实现exe控制osd的显示. 1. 接口部分 #ifndef __H_MyFilter__#define __H_MyFilter__# ...
- LeetCode 456. 132 Pattern
问题描述 给一组数,判断这组数中是否含有132 pattern. 132 pattern: i < j < k, 且 ai < ak < aj 第一种解法 使用栈来保存候选的子 ...
- 从html页面加载顺序来更好的理解jquery初始化
一,html页面加载顺序 1,用户输入网址(假设是个html页面,并且是第一次访问),浏览器向服务器发出请求,服务器返回html文件:2,浏览器开始载入html代码,发现<head>标签内 ...
- PyCharm运行报编码错误
运行报如下错误: SyntaxError: Non-ASCII character '\xe8' in file /home/ubuntu/code/201803091253-text.py on l ...