快速搭建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. WebSocket(5)---多人聊天系统

    多人聊天系统 功能说明:多人聊天系统,主要功能点: 1.当你登陆成功后,可以看到所有在线用户(实际开发可以通过redis实现,我这边仅仅用map集合) 2.实现群聊功能,我发送消息,大家都可以看到. ...

  2. asp.net core 系列 14 错误处理

    一.概述 本文介绍处理 ASP.NET Core 应用中常见错误的一些方法.主要是关于:开发环境异常页:非开发环境配置自定义异常处理页:配置状态代码页(没有正文响应,http状态400~599的). ...

  3. Java基础15:深入剖析Java枚举类

    更多内容请关注微信公众号[Java技术江湖] 这是一位阿里 Java 工程师的技术小站,作者黄小斜,专注 Java 相关技术:SSM.SpringBoot.MySQL.分布式.中间件.集群.Linux ...

  4. 解决Springboot 的ajax跨域问题-动静分离

    @SpringBootApplication public class FsSysApiApp { public static void main(String[] args) { SpringApp ...

  5. 环境与工具2:建立高效的mac环境

    你的工作与生活离不开电脑,电脑是一个工具,也是一个环境.环境是不是绿水青山,是不是得心应手,这是很重要的事情.小程平时使用macbook来学习跟娱乐,最近重装了系统,很多环境与工具都需要重新组建. 那 ...

  6. Eclipse工具常用快捷键

    Eclipse工具常用快捷键 一丶文件菜单常用快捷键 新建  Alt + shift + N 关闭当前编辑器 Ctrl +W 全部关闭 Ctrl + shift + w 保存  Ctrl + s 刷新 ...

  7. Docker最全教程——从理论到实战(五)

    往期内容链接 Docker最全教程——从理论到实战(一) Docker最全教程——从理论到实战(二) Docker最全教程——从理论到实战(三) Docker最全教程——从理论到实战(四) 本篇教程持 ...

  8. [JavaScript] 后端js的模块化规范CommonJs

    CommonJs概述 主要是单个文件定义的变量,函数,类都是私有的,其他文件不可见,单位的作用域 通过 exports(modules.exports)对外暴露接口,通过 require 加载模块 n ...

  9. mongodb学习(入门。。。。。)

    db.xs.insert({name:zhangsan})   db:当前数据库  xs:学生集合(没有的话自动创建) show collections   显示当前数据库的集合名字 show dbs ...

  10. WPF 文本框设置了阴影效果后,因左右的transform变化引发的拉伸渲染问题

    背景 最近遇到一个动画执行时,文本位置变化的问题.如下图: 如果你仔细看的话,当星星变小时,文本往下降了几个像素. 貌似有点莫名其妙,因为控件之间并不在同一个Panel布局控件中,不存在高度限制变化引 ...