快速搭建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@ ~]# 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

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

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

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

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

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

#使用容器名停止容器
[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 暗号:博客园.

Docker: 快速搭建LNMP网站平台的更多相关文章

  1. Docker进阶之八:搭建LNMP网站平台实战

    搭建LNMP网站平台实战 LNMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写.L指Linux,N指Nginx,M一般指MySQL,也可以指MariaDB,P一般指PHP,也可 ...

  2. Docker搭建LNMP网站平台

    1.自定义网络 [root@linux-docker01 ~]# docker network create lnmp 67e7e0736b2c58f8f81eed50130803b34be0583f ...

  3. docker 搭建LNMP网站平台

    准备好镜像 1.创建网络 docker network create lnmp 测试环境需删除全部之前起的容器 docker rm -f $(docker ps -a |awk '{print $1} ...

  4. Docker快速搭建LNMP环境

    一.使用Dockerfile制作镜像 前面的博客中已经介绍了如何基于容器制作镜像,此方法的原理是使用一个正在运行的容器,根据生产所需进行配置更改等操作后,使其满足生产环境,再将这个容器打包制作为镜像, ...

  5. 12、利用docker快速搭建Wordpress网站

    一.准备工作 结构图: 用户访问页面,Nginx将请求进行转发,如果请求的是php页面,则通过FastCGI转发给后端php进行处理:如果非php页面,则直接返回静态页面. 关键点: mysql.ph ...

  6. 阿里云体验实验室 教你如何《快速搭建LNMP环境》

    ## 体验平台简介 面向开发者和中小企业打造的一站式.全云端的开发平台,打开浏览器就可以开发.调试.上线,所测即所得,并结合无服务器的模式,重新定义云原生时代的研发工作方法论.旨在降低开发者上手成本和 ...

  7. 一文教您如何通过 Docker 快速搭建各种测试环境(Mysql, Redis, Elasticsearch, MongoDB) | 建议收藏

    欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 高级架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.ex ...

  8. 五分钟用Docker快速搭建Go开发环境

    挺早以前在我写过一篇用 `Docker`搭建LNMP开发环境的文章:[用Docker搭建Laravel开发环境](http://mp.weixin.qq.com/s?__biz=MzUzNTY5MzU ...

  9. spring boot / cloud (十八) 使用docker快速搭建本地环境

    spring boot / cloud (十八) 使用docker快速搭建本地环境 在平时的开发中工作中,环境的搭建其实一直都是一个很麻烦的事情 特别是现在,系统越来越复杂,所需要连接的一些中间件也越 ...

随机推荐

  1. 【Docker】(4)搭建私有镜像仓库

    [Docker](4)搭建私有镜像仓库 说明 1. 这里是通过阿里云,搭建Docker私有镜像仓库. 2. 这里打包的镜像是从官网拉下来的,并不是自己项目创建的新镜像,主要测试功能 一.搭建过程 首先 ...

  2. springBoot(12)---整合Swagger2

    Spingboot整合Swagger2 随着互联网技术的发展,一般开发都是前后端分离,那么前端和后端的唯一联系,变成了API接口:API文档变成了前后端开发人员联系的纽带,变得越来越重要,没有API ...

  3. Vue轻松入门,一起学起来!

    我们创建一个项目,这个项目我们细说Vue. 一.如何在项目中添加模块 我们通过npm 进行 安装 模块. 首先我们通过cmd.exe cd进入你的项目根目录,必须存在package.json文件,安装 ...

  4. Leetcode 10. 正则表达式匹配 - 题解

    版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. C#版 - L ...

  5. 带着萌新看springboot源码03

    上一节讲到了快速新建一个springboot应用,以及springboot的自动配置类起作用的时机,并且一起看了一个自动配置类的源码. 这一节我们来粗略看看当用户在浏览器输入一个url,怎么样返回一个 ...

  6. linux centos 安装Jenkins(非docker方式)

    写在前面 我之前写过Asp.net Core 使用Jenkins + Dockor 实现持续集成.自动化部署(一):Jenkins安装这jenkisn的安装过程,但这篇使用的是docker的方式安装的 ...

  7. 第7章 贡献 - Identity Server 4 中文文档(v1.0.0)

    我们对社区贡献非常开放,但您应该遵循一些指导原则,以便我们可以毫不费力地处理这个问题. 7.1 如何贡献? 最简单的方法是打开一个问题并开始讨论.然后我们可以决定是否以及如何实现功能或更改.如果您应提 ...

  8. MVC架构中的Repository模式 个人理解

    关于MVC架构中的Repository模式   个人理解:Repository是一个独立的层,介于领域层与数据映射层(数据访问层)之间.它的存在让领域层感觉不到数据访问层的存在,它提供一个类似集合的接 ...

  9. aps.net core mvc中使用session

    原因>>用session是想验证 前端输入的验证码和后端存入seesion的是否一致,也可以使用的是TempData[]. 铺垫>> 前端用GetValidateCode()方 ...

  10. 查看Windows电脑上.NET Framework版本的方法(找了好久的方法)

    照网上大多数人的方法,在路径 C:\Windows\Microsoft.NET\Framework 下可以查看到.NET Framework的版本,不过无论Win7还是Win10,显示都是这样的: 那 ...