docker部署PMA(LNMP架构)

上篇文章中已经部署好php环境,测试也已经OK

centos 7 docker 启动了一个web服务 但是启动时 报

WARNING: IPv4 forwarding is disabled. Networking will not work.

网上查询了下 需要做如下配置

解决办法:
# vi /etc/sysctl.conf
或者
# vi /usr/lib/sysctl.d/00-system.conf
添加如下代码:
    net.ipv4.ip_forward=1
 
重启network服务
# systemctl restart network
 
查看是否修改成功
# sysctl net.ipv4.ip_forward
 
如果返回为“net.ipv4.ip_forward = 1”则表示成功了

这篇文章来部署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就配置好了

 

posted @ 2018-03-09 11:17  GeminiMp  阅读(772)  评论(0编辑  收藏  举报