• Docker: 快速搭建LNMP网站平台


    快速搭建LNMP网站平台

    步骤:

    1、自定义网络(这里建立一个自定义网络,名字叫 lnmp, 让LNMP网站的服务,都加入这个自定义网络)
    docker network create lnmp
    2、创建Mysql容器
    docker run -d
    --name lnmp_mysql
    --net lnmp
    --mount src=mysql-vol,dst=/var/lib/mysql
    -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=wordpress mysql:5.7 --character-set-server=utf8
    3、创建PHP容器(--mount src=wwwroot,dst=/wwwroot  代表使用默认使用 /var/lib/docker/volumes/wwwroot作为挂载点,如果事先没有创建wwwroot,会自动创建,挂载到 容器的/wwwroot目录 )
    docker run -d --name lnmp_php --net lnmp --mount src=wwwroot,dst=/wwwroot php:v1
    4、创建Nginx容器(--mount type=bind,src=$(pwd)/nginx.conf,dst=/usr/local/nginx/conf/nginx.conf 将宿主机的nginx.conf挂在到容器内的/usr/local/nginx/conf/nginx.conf, 这个方法很好,可以提前把任何配置文件准备好,省得每次创建新容器时,需要修改容器内服务的配置文件。  )
    docker run -d --name lnmp_nginx --net lnmp -p 88:80
    --mount type=bind,src=$(pwd)/nginx.conf,dst=/usr/local/nginx/conf/nginx.conf --mount src=wwwroot,dst=/wwwroot nginx:v1

    (--mount src=wwwroot,dst=/wwwroot 这里配置挂载容器内的 /wwwroot目录,是因为nginx服务的nginx.conf里配置了网站访问根目录是/wwwroot)


    5、以wordpress博客为例,将tar文件下载下来,解压到宿主机/var/lib/docker/volumes/wwwroot 目录下, 就能使用http://192.168.1.30:88/访问到wordpress前台管理界面
    https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz

     以下是整个实践过程:

    #创建一个自定义网络,之后的nginx,tomcat,php,mysql都使用这个网络,就是让这些容器都使用同一个网段,这样互相之间通信就方便
    [root@192 ~]# docker network create lnmp
    b36da77912c714a0ab918c6a0768c3e85cc950fe164610ffdd046b9a71e0ce83
    #创建Mysql容器,将宿主机的mysql-vol卷挂在到容器的/var/lib/mysql,这样mysql数据就持久化了,删除容器 在msyql-vol卷的数据不会被删除
    [root@192 ~]# docker run -d --name lnmp_mysql --net lnmp --mount src=mysql-vol,dst=/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=wordpress mysql:5.7 --character-set-server=utf8
    845547a65a147b0d0be312e3f46bd7cbb56968a817e27e59c29d6a4455e0d7d6
    #这里默认在容器里创建了一个mysql-vol的卷,物理位置通过下面命令查看到在/var/lib/docker/volumes/wwwroot/_data
    [root@192 ~]# docker volume ls
    DRIVER              VOLUME NAME
    local               21c33f15f6d7c5a8609e99f9dfb4f4a9fb4865dc67e7b7d57393287c8ab925f2
    local               mysql-vol
    local               nginx-vol
    [root@192 ~]# docker run -d --name lnmp_php --net lnmp --mount src=wwwroot,dst=/wwwroot php:v1
    9eff3efb9e671a90b9bf966087f8fd567928db523215750f5eeb1eca8eb9e9ca
    [root@192 ~]# docker volume ls
    DRIVER              VOLUME NAME
    local               21c33f15f6d7c5a8609e99f9dfb4f4a9fb4865dc67e7b7d57393287c8ab925f2
    local               mysql-vol
    local               nginx-vol
    local               wwwroot
    [root@192 ~]# docker volume inspect wwwroot
    [
        {
            "CreatedAt": "2019-03-15T00:17:44+08:00",
            "Driver": "local",
            "Labels": null,
            "Mountpoint": "/var/lib/docker/volumes/wwwroot/_data",
            "Name": "wwwroot",
            "Options": null,
            "Scope": "local"
        }
    ]
    #创建Nginx容器
    [root@192 ~]# ls
    anaconda-ks.cfg  dockerfile_.zip  nginx  nginx.tar  php  tomcat
    [root@192 ~]# cd nginx
    [root@192 nginx]# docker run -d --name lnmp_nginx --net lnmp -p 88:80 --mount type=bind,src=$(pwd)/nginx.conf,dst=/usr/local/nginx/conf/nginx.conf --mount src=wwwroot,dst=/wwwroot nginx:v1
    4c510b4a8172862555e7cf455c05d9a4068b25e395cae69a32052acc7e2a4da0
    #进入宿主机/var/lib/docker/volumes/wwwroot/_data 创建 index.html文件,这样通过浏览器http://<宿主机ip>:88端口,就能访问到新建的index.html
    [root@192 nginx]# cd /var/lib/docker/volumes/wwwroot/_data
    [root@192 _data]# ls
    [root@192 _data]# vi index.html
    
    [root@192 ~]# docker volume inspect wwwroot
    [
        {
            "CreatedAt": "2019-03-15T00:17:44+08:00",
            "Driver": "local",
            "Labels": null,
            "Mountpoint": "/var/lib/docker/volumes/wwwroot/_data",
            "Name": "wwwroot",
            "Options": null,
            "Scope": "local"
        }
    ]
    [root@192 ~]# ls
    anaconda-ks.cfg  dockerfile_.zip  nginx  nginx.tar  php  tomcat
    [root@192 ~]# cd nginx
    [root@192 nginx]# docker run -d --name lnmp_nginx --net lnmp -p 88:80 --mount type=bind,src=$(pwd)/nginx.conf,dst=/usr/local/nginx/conf/nginx.conf --mount src=wwwroot,dst=/wwwroot nginx:v1
    4c510b4a8172862555e7cf455c05d9a4068b25e395cae69a32052acc7e2a4da0
    [root@192 nginx]# cd /var/lib/docker/volumes/wwwroot/_data
    [root@192 _data]# ls
    [root@192 _data]# vi index.html
    [root@192 _data]# vi test.php
    [
        {
            "CreatedAt": "2019-03-15T00:17:44+08:00",
            "Driver": "local",
            "Labels": null,
            "Mountpoint": "/var/lib/docker/volumes/wwwroot/_data",
            "Name": "wwwroot",
            "Options": null,
            "Scope": "local"
        }
    ]
    
    #部署一个php项目wordpress博客系统,先安装wget命令,下载php项目
    anaconda-ks.cfg  dockerfile_.zip  nginx  nginx.tar  php  tomcat
    [root@192 ~]# wget https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
    -bash: wget: 未找到命令
    [root@192 ~]# yum install wget -y
    已加载插件:fastestmirror
    Loading mirror speeds from cached hostfile
     * base: mirrors.aliyun.com
     * extras: ftp.sjtu.edu.cn
     * updates: ftp.sjtu.edu.cn
    正在解决依赖关系
    --> 正在检查事务
    ---> 软件包 wget.x86_64.0.1.14-18.el7 将被 安装
    --> 解决依赖关系完成
    
    依赖关系解决
    
    =================================================================================================================
     Package                 架构                      版本                            源                       大小
    =================================================================================================================
    正在安装:
     wget                    x86_64                    1.14-18.el7                     base                    547 k
    
    事务概要
    =================================================================================================================
    安装  1 软件包
    
    总下载量:547 k
    安装大小:2.0 M
    Downloading packages:
    wget-1.14-18.el7.x86_64.rpm                                                               | 547 kB  00:00:00     
    Running transaction check
    Running transaction test
    Transaction test succeeded
    Running transaction
      正在安装    : wget-1.14-18.el7.x86_64                                                                      1/1 
      验证中      : wget-1.14-18.el7.x86_64                                                                      1/1 
    
    已安装:
      wget.x86_64 0:1.14-18.el7                                                                                      
    
    完毕!
    [root@192 ~]# wget https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
    --2019-03-15 00:29:38--  https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
    正在解析主机 cn.wordpress.org (cn.wordpress.org)... 198.143.164.252
    正在连接 cn.wordpress.org (cn.wordpress.org)|198.143.164.252|:443... 已连接。
    已发出 HTTP 请求,正在等待回应... 200 OK
    长度:9082696 (8.7M) [application/octet-stream]
    正在保存至: “wordpress-4.9.4-zh_CN.tar.gz”
    
    100%[=======================================================================>] 9,082,696   1.79MB/s 用时 4.8s   
    
    2019-03-15 00:29:44 (1.79 MB/s) - 已保存 “wordpress-4.9.4-zh_CN.tar.gz” [9082696/9082696])
    
    [root@192 ~]# ls
    anaconda-ks.cfg  dockerfile_.zip  nginx  nginx.tar  php  tomcat  wordpress-4.9.4-zh_CN.tar.gz
    [root@192 ~]# tar wordpress-4.9.4-zh_CN.tar.gz 
    tar: 旧选项“C”需要参数。
    请用“tar --help”或“tar --usage”获得更多信息。
    #解压
    [root@192 ~]# tar xvf wordpress-4.9.4-zh_CN.tar.gz 
    wordpress/
    ...
    #将wordpress文件夹移动到
    [root@192 ~]# cd /var/lib/docker/volumes/wwwroot/_data
    [root@192 _data]# ls
    index.html  test.php
    [root@192 _data]# mv /root/wordpress/* .
    [root@192 _data]# ls
    index.html   test.php            wp-comments-post.php  wp-includes        wp-mail.php       xmlrpc.php
    index.php    wp-activate.php     wp-config-sample.php  wp-links-opml.php  wp-settings.php
    license.txt  wp-admin            wp-content            wp-load.php        wp-signup.php
    readme.html  wp-blog-header.php  wp-cron.php           wp-login.php       wp-trackback.php
             

    现在通过浏览器,可以访问:

    [root@192 _data]# vi wp-config.php

    将上面蓝色代码全选 copy到wp-config.php

    到此,完整的在容器中搭建了一个博客系统。

    如果搭建环境遇到文件,建议从第一篇开始看,笔记是连续的。 

    #使用容器名停止容器
    [root@192 wwwroot]# docker container stop lnmp_mysql lnmp_mysql [root@192 wwwroot]# docker container stop lnmp_php lnmp_php [root@192 wwwroot]# docker container stop lnmp_nginx lnmp_nginx
    #使用容器名启动容器
    [root@192 wwwroot]# docker container start lnmp_nginx lnmp_nginx [root@192 wwwroot]# docker container start lnmp_php lnmp_php [root@192 wwwroot]# docker container start lnmp_mysql lnmp_mysql

    作者: 梅梅~

    出处: https://www.cnblogs.com/keeptesting

    关于作者:专注软件测试,测试运维相关工作,请多多赐教!

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 原文链接 欢迎沟通交流加微信联系。 微信:yangguangkg20140901 暗号:博客园.

  • 相关阅读:
    服务返返回状态码详解
    LeetCode#28 Implement strStr()
    LeetCode#58 Length of Last Word
    LeetCode#66 Plus One
    spooling技术
    文件的打开与关闭
    DMA方式与通道方式
    中断向量、向量中断、向量地址
    中断响应优先级和中断处理优先级
    I/O接口
  • 原文地址:https://www.cnblogs.com/keeptesting/p/10537373.html
Copyright © 2020-2023  润新知