Docker: 快速搭建LNMP网站平台

时间:2023-03-08 21:43:04

快速搭建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)

Docker: 快速搭建LNMP网站平台
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@ ~]# docker network create lnmp
b36da77912c714a0ab918c6a0768c3e85cc950fe164610ffdd046b9a71e0ce83
#创建Mysql容器,将宿主机的mysql-vol卷挂在到容器的/var/lib/mysql,这样mysql数据就持久化了,删除容器 在msyql-vol卷的数据不会被删除
[root@ ~]# docker run -d --name lnmp_mysql --net lnmp --mount src=mysql-vol,dst=/var/lib/mysql -e MYSQL_ROOT_PASSWORD= -e MYSQL_DATABASE=wordpress mysql:5.7 --character-set-server=utf8
845547a65a147b0d0be312e3f46bd7cbb56968a817e27e59c29d6a4455e0d7d6
#这里默认在容器里创建了一个mysql-vol的卷,物理位置通过下面命令查看到在/var/lib/docker/volumes/wwwroot/_data
[root@ ~]# docker volume ls
DRIVER VOLUME NAME
local 21c33f15f6d7c5a8609e99f9dfb4f4a9fb4865dc67e7b7d57393287c8ab925f2
local mysql-vol
local nginx-vol
[root@ ~]# docker run -d --name lnmp_php --net lnmp --mount src=wwwroot,dst=/wwwroot php:v1
9eff3efb9e671a90b9bf966087f8fd567928db523215750f5eeb1eca8eb9e9ca
[root@ ~]# docker volume ls
DRIVER VOLUME NAME
local 21c33f15f6d7c5a8609e99f9dfb4f4a9fb4865dc67e7b7d57393287c8ab925f2
local mysql-vol
local nginx-vol
local wwwroot
[root@ ~]# 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@ ~]# ls
anaconda-ks.cfg dockerfile_.zip nginx nginx.tar php tomcat
[root@ ~]# cd nginx
[root@ nginx]# docker run -d --name lnmp_nginx --net lnmp -p : --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@ nginx]# cd /var/lib/docker/volumes/wwwroot/_data
[root@ _data]# ls
[root@ _data]# vi index.html [root@ ~]# 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@ ~]# ls
anaconda-ks.cfg dockerfile_.zip nginx nginx.tar php tomcat
[root@ ~]# cd nginx
[root@ nginx]# docker run -d --name lnmp_nginx --net lnmp -p : --mount type=bind,src=$(pwd)/nginx.conf,dst=/usr/local/nginx/conf/nginx.conf --mount src=wwwroot,dst=/wwwroot nginx:v1
4c510b4a8172862555e7cf455c05d9a4068b25e395cae69a32052acc7e2a4da0
[root@ nginx]# cd /var/lib/docker/volumes/wwwroot/_data
[root@ _data]# ls
[root@ _data]# vi index.html
[root@ _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@ ~]# wget https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
-bash: wget: 未找到命令
[root@ ~]# 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.-.el7 将被 安装
--> 解决依赖关系完成 依赖关系解决 =================================================================================================================
Package 架构 版本 源 大小
=================================================================================================================
正在安装:
wget x86_64 1.14-.el7 base k 事务概要
=================================================================================================================
安装 软件包 总下载量: k
安装大小:2.0 M
Downloading packages:
wget-1.14-.el7.x86_64.rpm | kB ::
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 : wget-1.14-.el7.x86_64 /
验证中 : wget-1.14-.el7.x86_64 / 已安装:
wget.x86_64 :1.14-.el7 完毕!
[root@ ~]# wget https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
---- ::-- 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|:... 已连接。
已发出 HTTP 请求,正在等待回应... OK
长度: (8.7M) [application/octet-stream]
正在保存至: “wordpress-4.9.-zh_CN.tar.gz” %[=======================================================================>] ,, .79MB/s 用时 .8s -- :: (1.79 MB/s) - 已保存 “wordpress-4.9.-zh_CN.tar.gz” [/]) [root@ ~]# ls
anaconda-ks.cfg dockerfile_.zip nginx nginx.tar php tomcat wordpress-4.9.-zh_CN.tar.gz
[root@ ~]# tar wordpress-4.9.-zh_CN.tar.gz
tar: 旧选项“C”需要参数。
请用“tar --help”或“tar --usage”获得更多信息。
#解压
[root@ ~]# tar xvf wordpress-4.9.-zh_CN.tar.gz
wordpress/
...
#将wordpress文件夹移动到
[root@ ~]# cd /var/lib/docker/volumes/wwwroot/_data
[root@ _data]# ls
index.html test.php
[root@ _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

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

Docker: 快速搭建LNMP网站平台

Docker: 快速搭建LNMP网站平台

Docker: 快速搭建LNMP网站平台

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

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

Docker: 快速搭建LNMP网站平台

Docker: 快速搭建LNMP网站平台

Docker: 快速搭建LNMP网站平台

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

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

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

作者: 梅梅~

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

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

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