快速搭建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 暗号:博客园.

内容来源于网络如有侵权请私信删除
你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!