基于码头工人容器分离部署LNMP架构

  

一、环境准备:

  
  
      <李> centos 7.5服务器一台,运行码头工人服务,李   <李>关于码头工人服务的安装,参考博文:码头工人的安装详细配置。   <李>各个容器IP: 192.168.1.2 Nginx, 192.168.1.3 (PHP), 192.168.1.4 (MySQL)。   
     <人力资源/>   
  

搭建LNMP注意事项:

  
      <李>各个容器的数据实现持久化;李   <李>为容器分配固定的IP地址,防止容器重建后,IP地址发生变化,徒增不必要的麻烦,李   <李>由于客户端只需要访问Nginx的80端口,然后通过Nginx去调用PHP连接数据库,所以只需要将Nginx的80端口使用“p”选项映射到宿主机即可,其他容器,不必映射,相比较而言,也安全了些。   
     

二,开始配置

  

1,解决固定IP问题

  
 <代码> [root@docker ~] #码头工人网络创建- d桥——子网192.168.1.0/24网关192.168.1.1 lnmp
  #创建自定义网络,并指定网段,网关,只有定义了网段,才可以使用此网络为容器分配固定IP  
  

2,运行Nginx容器

  
 <代码> [root@docker ~] #码头工人- d——名字测试运行nginx #先随便运行一个nginx容器
  (root@docker ~) # mkdir/数据#创建相应目录
  (root@docker ~) #码头工人cp测试:/etc/nginx/数据#将容器内的nginx配置文件目录复制一份出来
  (root@docker ~) #码头工人cp测试:/usr/share/nginx/html/数据#将网页根目录也复制一份出来
  #之所以复制出来,是因为在实现数据持久化时,会覆盖掉容器内的配置文件。
  (root@docker ~) #码头工人运行- d——名字nginx网络lnmp——ip 192.168.1.2 - p 80:80 - v/数据/nginx:/etc/nginx - v/数据/html:/usr/share/nginx/html nginx
  #基于刚刚创建的nginx网络运行nginx容器,并指定其IP地址;
  #使用“v”选项分别将目录挂载到nginx的配置文件及网页根目录,以便实现数据持久化;
  #在实现数据的持久化过程中,也解决了nginx容器内无法使用一些基本命令的问题,
  #若需要更改nginx配置文件或网络根目录,直接在本地的/数据目录下进行相应的操作即可。 
  

3,运行MySQL容器

  

由于在生产环境中,大多数公司十分忌讳将MySQL这样的服务放在虚拟化的技术上运行,一般都是单独一台服务器,只跑MySQL服务,所以,这里为了简便一些,直接运行MySQL容器即可,就不去做这个MySQL数据的持久化了(主要是懒的找是那些目录要实现数据持久化了)。

  
 <代码> [root@docker ~] #码头工人运行mysql - d -名字- e MYSQL_ROOT_PASSWORD=123. com——网络lnmp ip 192.168.1.4 mysql: 5.7
  & lt; !
  基于lnmp网络运行MySQL镜像,并指定其IP地址;
  “MYSQL_ROOT_PASSWORD=123. com”是为指定MySQL数据库的根密码
  若需要使用第三方图形化工具连接数据库,只需要加“p”选项将容器的3306端口映射到宿主机即可。
  ——在 
  

4,运行PHP容器

  
 <代码> [root@docker ~] #码头工人运行- d——名字phpfpm - v/数据/html:/usr/share/nginx/html——网络lnmp ip 192.168.1.3 php: 7.2 fpm
  #若容器直接运行失败,则需要执行“码头工人把php: 7.2 fpm”命令下载镜像,再执行上面的运行容器命令
  #由于需要和Nginx服务器一样的网页目录,所以挂载同样的目录 
  

5,修改Nginx配置文件,以便关联PHP容器

  
 <代码> [root@docker ~] # vim/数据/nginx/conf.d/违约。参看#在宿主机直接编辑Nginx配置文件
  .................. #省略部分内容
  位置/{
  根/usr/share/nginx/html;
  指数指数。html索引。htm index . php。#添加“index . php”
  }
  {}#增加以下位置配置段
  ~ \位置。php $ {
  根/usr/share/nginx/html;
  fastcgi_pass 192.168.1.3:9000;9000 #指定PHP容器的端口
  fastcgi_index index . php。
  fastcgi_param SCRIPT_FILENAME document_root fastcgi_script_name美元;
  包括fastcgi_params;
  }
  .................. #省略部分内容
  #编辑完成后保存退出即可。
  (root@docker ~) #码头工人重启nginx #重启nginx容器,以便配置生效
  (root@docker ~) # vim/数据/html/测试。php #编辑php网页文件,测试Nginx与php是否协调工作
  
  php & lt; ?
  phpinfo ();
  比;
   
  

6,客户端访问测试:

  

<强> 1)直接访问码头工人服务器的IP地址(默认是80端口):
基于码头工人容器分离部署LNMP架构

基于码头工人容器分离部署LNMP架构