快速搭建LNMP网站平台
步骤:
1、自定义网络(这里建立一个自定义网络,名字叫 lnmp, 让LNMP网站的服务,都加入这个自定义网络)
docker network create lnmp2、创建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=utf83、创建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:v14、创建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 lnmpb36da77912c714a0ab918c6a0768c3e85cc950fe164610ffdd046b9a71e0ce83#创建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=utf8845547a65a147b0d0be312e3f46bd7cbb56968a817e27e59c29d6a4455e0d7d6#这里默认在容器里创建了一个mysql-vol的卷,物理位置通过下面命令查看到在/var/lib/docker/volumes/wwwroot/_data[root@192 ~]# docker volume lsDRIVER VOLUME NAMElocal 21c33f15f6d7c5a8609e99f9dfb4f4a9fb4865dc67e7b7d57393287c8ab925f2local mysql-vollocal nginx-vol[root@192 ~]# docker run -d --name lnmp_php --net lnmp --mount src=wwwroot,dst=/wwwroot php:v19eff3efb9e671a90b9bf966087f8fd567928db523215750f5eeb1eca8eb9e9ca[root@192 ~]# docker volume lsDRIVER VOLUME NAMElocal 21c33f15f6d7c5a8609e99f9dfb4f4a9fb4865dc67e7b7d57393287c8ab925f2local mysql-vollocal nginx-vollocal 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 ~]# lsanaconda-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:v14c510b4a8172862555e7cf455c05d9a4068b25e395cae69a32052acc7e2a4da0#进入宿主机/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 ~]# lsanaconda-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:v14c510b4a8172862555e7cf455c05d9a4068b25e395cae69a32052acc7e2a4da0[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已加载插件:fastestmirrorLoading 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 MDownloading packages:wget-1.14-18.el7.x86_64.rpm | 547 kB 00:00:00 Running transaction checkRunning transaction testTransaction test succeededRunning 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 ~]# lsanaconda-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]# lsindex.html test.php[root@192 _data]# mv /root/wordpress/* .[root@192 _data]# lsindex.html test.php wp-comments-post.php wp-includes wp-mail.php xmlrpc.phpindex.php wp-activate.php wp-config-sample.php wp-links-opml.php wp-settings.phplicense.txt wp-admin wp-content wp-load.php wp-signup.phpreadme.html wp-blog-header.php wp-cron.php wp-login.php wp-trackback.php 宿主机ip>
现在通过浏览器,可以访问:
[root@192 _data]# vi wp-config.php
将上面蓝色代码全选 copy到wp-config.php
到此,完整的在容器中搭建了一个博客系统。
如果搭建环境遇到文件,建议从第一篇开始看,笔记是连续的。
#使用容器名停止容器 [root@192 wwwroot]# docker container stop lnmp_mysqllnmp_mysql[root@192 wwwroot]# docker container stop lnmp_phplnmp_php[root@192 wwwroot]# docker container stop lnmp_nginxlnmp_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
作者:
出处:
关于作者:专注软件测试,测试运维相关工作,请多多赐教!
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 欢迎沟通交流加微信联系。 微信:yangguangkg20140901 暗号:博客园.