欢迎来到资源库(www.zyku.net)

CentOS

当前位置:首页 > 服务器教程 > CentOS > Docker

CentOS 7中Docker搭建LNMP环境的方法

时间:2018-09-14|栏目:CentOS|点击:|我要投稿

使用docker可以在一台机器上搭建多台服务器,它没有传统虚拟机那么笨重,而且消耗的系统资源也相对较少。并且它是一个隔离的环境,任你在容器里面搅得天昏地暗,对宿主机OS也不会有任何影响,因此它的安全性也很高。

本文主要介绍使用docker容器搭建php运行环境,也就是LNMP环境:

1、docker安装mysql :

首先,我们从仓库拉取一个MySQL的镜像,命令如下:

docker pull mysql:5.6

然后我们可以通过如下命令查看我们刚刚拉下来的mysql的镜像:

docker images

CentOS 7中Docker搭建LNMP环境的方法

接下来,我们就开始运行并启动mysql所在容器,通过执行以下命令:

docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=dk123456 --name dk_mysql mysql:5.6

参数说明 
-d 让容器在后台运行 
-p 添加主机到容器的端口映射 
-e 设置环境变量,这里是设置mysql的root用户的初始密码,这个必须设置 
--name 容器的名字,随便取,但是必须唯一

其实我们也可以仅仅使用docker run命令就行了。docker run会先去pull,然后再create。

下面我们就可以通过如下命令来查看我们刚刚创建的容器:

docker ps -a

CentOS 7中Docker搭建LNMP环境的方法

这里我们可以看到容器的状态是Up状态,表示容器正在运行,并且把可以看到主机和容器的端口映射关系。

接下来,我们就可以执行如下命令进入到我们刚刚创建的容器中:

docker exec -ti dk_mysql /bin/bash

参数说明 
-t 在容器里生产一个伪终端 
-i 对容器内的标准输入 (STDIN) 进行交互

CentOS 7中Docker搭建LNMP环境的方法

可以执行 exit 退出!

这里需要注意的是容器中默认是没有vim编辑器的,所以我们首先要安装vim,安装方法如下:

首先安装前执行如下命令:

apt-get update

这个命令的作用是同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,这样才能获取到最新的软件包,等更新完毕后,在执行如下命令,进行安装:

apt-get install vim

进入到mysql容器后,我们通过创建一个远程可以访问的用户,这样我们就能从别的主机访问到我们的数据库了。

2、docker安装php-fpm

同样首先我们需要拉取php-fpm的镜像:

docker pull php:7.0-fpm

再创建一个phpfpm的容器:

docker run -d -v /var/nginx/www/html:/var/www/html -p 9000:9000 --link dk_mysql:mysql --name dk_phpfpm php:7.0-fpm

参数说明
-d 让容器在后台运行
-p 添加主机到容器的端口映射
-v 添加目录映射,即主机上的/var/nginx/www/html和容器中/var/www/html目录是同步的
--name 容器的名字
--link 与另外一个容器建立起联系,这样我们就可以在当前容器中去使用另一个容器里的服务

这里如果不指定--link参数其实也是可以的,因为容易本身也是有ip的且唯一,所以我们也可以直接利用ip去访问容器。

然后进入到我们的容器,在/var/www/html目录下新建一个index.php文件:

docker exec -ti dk_phpfpm /bin/bash             #进入容器
touch index.php     #创建index.php文件

我们可以看到该目录下新建了一个php文件

接下来我们回到我们的宿主机上面,访问一下我们主机上/var/nginx/www/html目录

CentOS 7中Docker搭建LNMP环境的方法

我们发现我们在容器里的/var/www/html目录中新建的文件也在主机的/var/nginx/www/html目录中,因为在创建容器的时候,我们已经把主机中的目录挂载到了容器中去了。

因为后面我要使用pdo模块进行测试,所以我需要自己安装pdo_mysql模块,在docker容器中可以这样来安装:

docker-php-ext-install pdo_mysql

然后我们可以通过执行下面命令查看我们的php的所有扩展模块,我们可以看到我们刚刚安装的pdo_mysql扩展也在里面:

php -m

CentOS 7中Docker搭建LNMP环境的方法

3、docker安装nginx

首先,我们从仓库里去拉取一个nginx镜像:

docker pull nginx:1.10.3

接下来运行nginx容器:

docker run -d -p 80:80 --name dk_nginx -v /var/nginx/www/html:/var/www/html --link dk_phpfpm:phpfpm --name dk_nginx nginx:1.10.3

参数说明:
-d 让容器在后台运行
-p 添加主机到容器的端口映射
-v 添加目录映射,这里最好nginx容器的根目录最好写成和php容器中根目录一样。但是不一点非要一模一样,如果不一样在配置nginx的时候需要注意
--name 容器的名字
--link 与另外一个容器建立起联系

然后进入nginx容器,修改nginx的配置文件让它支持php:

docker exec -ti dk_nginx /bin/bash

参数说明:
-t 在容器里生产一个伪终端
-i 对容器内的标准输入 (STDIN) 进行交互

接着在容器里找到nginx的配置文件,默认是在/etc/nginx目录下,我们可以修改conf.d目录下的default.conf,在里面添加如下配置信息:

location / {
        root   /var/www/html;
        index  index.html index.htm index.php;
    }
location ~ \.php$ {
        root           /var/www/html;
        fastcgi_index  index.php;
        fastcgi_pass   phpfpm:9000;//这里改成我们之前--link进来的容器,也可以直接用php容器的ip
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;//如果你的根目录和php容器的根目录不一样,这里的$document_root需要换成你php下的根目录,不然php就找不到文件了
        include        fastcgi_params;
	}

编辑保存后,在容器中可以执行如下命令重新加载nginx配置信息:

service nginx reload

CentOS 7中Docker搭建LNMP环境的方法

接着进入容器中的 /var/www/html 目录下,在 index.php 中写入 phpinfo(); 来测试下我们的安装是否成功了,执行后如下图所示:

CentOS 7中Docker搭建LNMP环境的方法

看到正确的输出,就证明我们的配置成功了。一个最基本的LNMP环境就搭建好了!

如果需要修改php的配置文件“php.ini”,我们可以到php容器中,进入 /usr/local/etc/php 目录,将 php.ini-development 修改为 php.ini 即可,修改完成后,我们刷新一下 phpinfo(); 页面,如下图所示:

CentOS 7中Docker搭建LNMP环境的方法

(资源库 www.zyku.net)

上一篇:CentOS 7 上安装Docker教程

栏    目:CentOS

下一篇:Docker搭建多版本PHP共存同时在线运行的方法

本文标题:CentOS 7中Docker搭建LNMP环境的方法

本文地址:https://www.zyku.net/centos/1704.html

关于我们 | 版权申明 | 寻求合作 |

重要申明:本站所有的文章、图片、评论等内容,均由网友发表或上传并维护或收集自网络,仅供个人学习交流使用,版权归原作者所有。

如有侵犯您的版权,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:95148658 | 邮箱:mb8#qq.com(#换成@)

苏ICP备2020066115号-1

本网站由提供CDN加速/云存储服务