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就配置好了