• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    docker部署LNMP架构的方法

    环境要求:

    IP  hostname
    192.168.1.1 node1

    项目规划:

    容器网段:172.16.10.0/24

    NGINX:172.16.10.10

    MySQL:172.16.10.20

    PHP:172.16.10.20

    网站根目录:/www

    nginx配置文件:/conf

    mysql持久化目录:/var/lib/mysql

    提前准备服务配置文件:

    nginx

    <strong>docker run -itd --name test nginx       
    #运行test容器  
    docker cp test:/etc/nginx /conf      
    #copy主配置文件
    ls /conf/
    conf.d     koi-win   nginx.conf  win-utf
    fastcgi_params mime.types scgi_params
    koi-utf     modules   uwsgi_params
    docker cp test:/usr/share/nginx/html /www  
     #copy网站目录
    ls /www/
    50x.html 
    index.html     
    </strong>

    mysql

    <strong>[root@node1 ~]# docker rm -f test
    test
    [root@node1 ~]# docker run -itd --name test -e MYSQL_ROOT_PASSWORD=pwd123 mysql:5.7
    6b8d73ecd541d454f121302963a85d53131286d3118a968525a24ad2315b047b
    [root@node1 ~]# docker exec -it test sh
    # mysql -uroot -ppwd123 -h127.0.0.1
    ..........
    mysql> create database test;
    Query OK, 1 row affected (0.00 sec)
     
    mysql> show databases;
    +--------------------+
    | Database      |
    +--------------------+
    | information_schema |
    | mysql       |
    | performance_schema |
    | sys        |
    | test        |
    +--------------------+
    5 rows in set (0.00 sec)
     
    mysql> exit
    Bye
    # exit
    [root@node1 ~]# docker cp test:/var/lib/mysql /var/lib/mysql
    </strong>

    1、配置lnmp虚拟网卡,网段172.16.10.0/24,网关172.16.10.254

    <strong>docker network create -d bridge --subnet 172.16.10.0/24 --gateway 172.16.10.254 lnmp
    </strong>

     2、创建nginx容器测试访问 

    <strong>#创建mysql挂载数据目录、开发端口、指定IP
    [root@node1 ~]# docker run -itd --name mysql -p 3306:3306 -v /var/lib/mysql:/var/lib/mysql --network lnmp --ip 172.16.10.20 mysql:5.7
    448227483a9c3141c2155d2c7b027aec263bfcfe4ebc49371b6817c17565ff81
    #查看运行状态
    [root@node1 ~]# docker ps
    CONTAINER ID  IMAGE     COMMAND         CREATED     STATUS     PORTS                NAMES
    448227483a9c  mysql:5.7   "docker-entrypoint.s…"  10 seconds ago  Up 9 seconds  0.0.0.0:3306->3306/tcp, 33060/tcp  mysql
    4d1e99a06972  nginx:latest  "/docker-entrypoint.…"  3 minutes ago  Up 3 minutes  0.0.0.0:80->80/tcp         nginx
    6b8d73ecd541  mysql:5.7   "docker-entrypoint.s…"  9 minutes ago  Up 9 minutes  3306/tcp, 33060/tcp         test
    #测试登录
    [root@node1 ~]# yum -y install mariadb
    [root@node1 ~]# mysql -uroot -ppwd123 -h127.0.0.1
    Welcome to the MariaDB monitor. Commands end with ; or \g.
    Your MySQL connection id is 2
    Server version: 5.7.33 MySQL Community Server (GPL)
     
    Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
     
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
     
    MySQL [(none)]> Bye
    </strong>

     3、运行MySQL容器 

    <strong>[root@node1 www]# docker run -itd --name php-fpm -p 9000:9000 -v /www:/usr/share/nginx/html --network lnmp --ip 172.16.10.30 php:7.2-fpm 
    ae09213d7c8c84299b1522ca474fccf7f26e27973cd02563891c37d51799b766
    [root@node1 www]# docker ps
    CONTAINER ID  IMAGE     COMMAND         CREATED     STATUS     PORTS                NAMES
    ae09213d7c8c  php:7.2-fpm  "docker-php-entrypoi…"  7 seconds ago  Up 6 seconds  0.0.0.0:9000->9000/tcp       php-fpm</strong>

     4、创建php-fpm容器

    <strong>[root@node1 ~]# vim /conf/conf.d/default.conf
    </strong>

     5、nginx和PHP的连接 

    5.1、添加nginx静态的测试界面

    <strong>[root@node1 ~]# echo Hello LNMP! > /www/index.html
    [root@node1 ~]# cat /www/index.html
    Hello LNMP!
    [root@node1 ~]# curl 192.168.1.1
    Hello LNMP!
    </strong>

    5.2、添加PHP测试页面 

    <strong>[root@node1 ~]# cd /www
    [root@node1 www]# vim test.php
    [root@node1 www]# cat test.php
    <?php
    phpinfo();
    ?>
    [root@node1 www]# docker restart nginx
    nginx
    [root@node1 www]# pwd
    /www
    [root@node1 www]# ls
    50x.html index.html test.php
    </strong>

    能够访问到以上两个界面,说明nginx和php的连接,没有问题,接下来是 php和mysql的连接。在这里我们使用一个phpMyAdmin的数据库管理工 具。

    6、测试PHP容器与Mysql容器的协调性、工具phpMyadmin

    [root@node1 www]# pwd
    /www
    [root@node1 www]# unzip phpMyAdmin-4.9.0.1-all-languages.zip
    [root@node1 www]# mv phpMyAdmin-4.9.0.1-all-languages phpMyAdmin
    [root@node1 www]# rm -rf phpMyAdmin  

    6.1、更新nginx配置文件 

    [root@node1 www]# cd /conf/conf.d/
    [root@node1 conf.d]# vim default.conf

     

    内容如下:

    location /phpmyadmin {
      root  /usr/share/nginx/html;
      index index.php index.html index.htm;
    }
    location ~ /phpmyadmin/(?<after_ali>(.*)\.(php|php5)?$) {
      root      /usr/share/nginx/html;
      fastcgi_pass  172.16.10.30:9000;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      include    fastcgi_params;
    }  

    测试访问:

    其实这主要是php镜像不支持连接mysql,我们要重新写一个。

    7、解决php不关联mysql

    [root@node1 /]# cd /file/
    [root@node1 file]# ls
    Dockerfile
    [root@node1 file]# cat Dockerfile
    FROM php:7.2-fpm
    RUN apt-get update && apt-get install -y \
    
    libfreetype6-dev \
    
    libjpeg62-turbo-dev \
    
    libpng-dev \
    
    && docker-php-ext-install -j$(nproc) iconv \
    
    && docker-php-ext-configure gd --with-freetypedir=/usr/include/ --with-jpeg-dir=/usr/include/ \
    
    && docker-php-ext-install -j$(nproc) gd \
    
    && docker-php-ext-install mysqli pdo pdo_mysql
    [root@node1 file]# docker build -t php_mysql .
    #删除php容器
    [root@node1 /]# docker rm php-fpm -f
    php-fpm
    #运行phpmysql容器
    [root@node1 /]# docker run -itd --name phpfpm -p 9000:9000 -v /www:/usr/share/nginx/html --network lnmp --ip 172.16.10.30 phpmysql:latest
    c4e943880fd51f947cba64ba0006abd26a923439a3e39a0350ca2561b42b8026
    [root@node1 /]# docker ps
    CONTAINER ID  IMAGE       COMMAND         CREATED     STATUS     PORTS                NAMES
    c4e943880fd5  phpmysql:latest  "docker-php-entrypoi…"  14 seconds ago  Up 13 seconds  0.0.0.0:9000->9000/tcp       phpfpm

    7.1、phpmysql配置指向mysql地址

    [root@node1 www]# cd /www/phpmyadmin/
    [root@node1 phpmyadmin]# mv config.sample.inc.php config.inc.php
    [root@node1 phpmyadmin]# vim config.inc.php
    [root@node1 phpmyadmin]# docker restart phpfpm
    phpfpm

    8、访问测试  

    9、趁热打铁,在发布一个dz论坛

    dz论坛链接地址:http://down.chinaz.com/soft/41403.htm

    #上传
    [root@node1 /]# ls
    bin    Discuz_X3.4_SC_UTF8_20210119.zip
    #移动到/www网页目录下
    mv upload/ /www/dz
    chmod 777 /www/dz<br>#保证数据库有dz库<br>#授权一个dz库的管理员<br>#注意安装是IP为数据库的IP不要写错<br>

      

    到此这篇关于docker部署LNMP架构的方法的文章就介绍到这了,更多相关docker部署LNMP架构内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    上一篇:Virtualbox 安装centos7虚拟机的图文教程详解
    下一篇:Docker初级网络端口映射的配置
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    docker部署LNMP架构的方法 docker,部署,LNMP,架构,的,