Docker下部署LNMP黄金架构
一、部署lnmp
1.网络规划
172.16.10.0/24
nginx:172.16.10.10
mysql:172.16.10.20
php:172.16.10.30
网站访问主目录:/wwwroot
nginx的配置文件:/docker
mysql持久化的目录:/mysql
2.docker运行nginx服务,拷贝出所需文件后删除
[root@docker ~]# mkdir /docker
[root@docker ~]# mkdir /wwwroot
[root@docker ~]# docker run -itd --name test nginx
[root@docker ~]# docker cp test:/etc/nginx /docker/
[root@docker ~]# docker cp test:/usr/share/nginx/html /wwwroot/
[root@docker ~]# docker rm -f test
3.创建自定义网络
[root@docker ~]# docker network create -d bridge --subnet 172.16.10.0/24 --gateway 172.16.10.1 lnmp
4.运行nginx容器
[root@docker ~]# docker run -itd --name nginx -p 80:80 -v /wwwroot/html:/usr/share/nginx/html -v /docker/nginx:/etc/nginx --network lnmp --ip 172.16.10.10 nginx
5.运行mysql容器
[root@docker html]# docker pull mysql:5.7
[root@docker html]# docker run -itd --name test -e MYSQL_ROOT_PASSWORD=fbn123 mysql:5.7
[root@docker html]# docker exec -it test bash
root@d46a7cc8407f:/# mysql -uroot -pfbn123
mysql> show databases;
mysql> create database test;
mysql> show databases;
mysql> exit
root@d46a7cc8407f:/# cd /var/lib/mysql
root@d46a7cc8407f:/var/lib/mysql# ls
root@d46a7cc8407f:/var/lib/mysql# exit
[root@docker html]# docker cp test:/var/lib/mysql /
[root@docker html]# ls /mysql/
[root@docker html]# docker run -itd --name mysql -p 3306:3306 -v /mysql:/var/lib/mysql --network lnmp --ip 172.16.10.20 mysql:5.7
[root@docker html]# yum -y install mariadb
[root@docker html]# mysql -uroot -pfbn123 -h 127.0.0.1
6.运行php容器
[root@docker ~]# docker run -itd --name php-fpm -p 9000:9000 -v /wwwroot/html:/usr/share/nginx/html --network lnmp --ip 172.16.10.30 php:7.2-fpm
二、测试nginx和php连接
1.编写nginx配置文件
[root@docker ~]# cd /docker/nginx/conf.d
[root@docker conf.d]# vim default.conf
location / {
root /usr/share/nginx/html;
index index.html index.htm index.php;
location ~ \.php$ {
root /usr/share/nginx/html;
fastcgi_pass 172.16.10.30:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
2.浏览器验证nginx服务和php服务
(1)添加nginx静态的测试界面
[root@docker ~]# cd /wwwroot/html/
[root@docker html]# echo 123 > index.html
[root@docker html]# curl 127.0.0.1
(2)添加php测试界面
[root@docker html]# vim index.php
<?php
phpinfo();
?>
[root@docker html]# docker restart nginx
访问测试
http://192.168.229.187
http://192.168.229.187/index.php
补充
部署动态站点需要赋予目录足够权限,推荐 chmod -R 777 /wwwroot/html/*
docker部署的php容器需要 安装扩展
docker exec -it php-fpm bash #1、进入php容器内部
docker-php-ext-install mysqli #2、安装php所需扩展
Docker下部署LNMP黄金架构的更多相关文章
- 设想 Docker 下部署 KVM
设想 Docker 下部署 KVM 一.安装 $ yum -y install kvm # kvm base , must $ yum -y install libvirt -y # libvirtd ...
- 在Docker下部署Nginx
在Docker下部署Nginx 在Docker下部署Nginx,包括: 部署一个最简单的Nginx,可以通过80端口访问默认的网站 设置记录访问和错误日志的路径 设置静态网站的路径 通过proxy_p ...
- 使用Docker 一键部署 LNMP+Redis 环境
使用Docker 部署 LNMP+Redis 环境 Docker 简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linu ...
- Docker Compose部署lnmp
参考:https://github.com/micooz/docker-lnmp 一.简介 使用Dcoekr镜像部署lnmp(Linux.Nginx.MySQL.PHP7). 1.1 结构 app └ ...
- centos7搭建docker并部署lnmp (转)
1.首先呢先更新yum源 yum -y update 2.1.安装docker存储库 yum install -y yum-utils \ device-mapper-persistent-dat ...
- Docker下部署springboot项目
1.背景 如何在docker容器环境下部署一个springboot项目? 2.具体步骤 第一步:准备一个springboot项目的xxxx.jar包 jar包中用于测试的一个接口如下 第二步:编写Do ...
- docker下部署spring boot
第 5 章 Docker + Spring Boot: 快速搭建和部署Java Web应用 0.你需要: JDK 1.8 : java -version Maven 3.0+ : mvn -v Git ...
- Docker 下部署hadoop集群
一.主机规划 3台主机:1个master.2个slaver/worker ip地址使用docker默认的分配地址: master: 主机名: hadoop2.ip地址: 172.17.0.2 slav ...
- 记离线部署docker,以及docker下部署zabbix
一.离线安装docker 下载地址:https://download.docker.com/linux/static/stable/x86_64/ 上传软件并解压 [root@localhost op ...
- docker下部署gitlab
docker用来隔离应用还是很方便的,一来本身的操作较为简单,二来资源占用也比虚拟机要小得多,三来也较为安全,因为像数据库这样的应用不会再全局暴露端口,同时应用间的通信通过加密和端口转发,更加安全. ...
随机推荐
- maven安装在idea中报错
java.lang.RuntimeException: java.lang.RuntimeException: org.codehaus.plexus.component.repository.exc ...
- [Unity3D 小Tricks] 如何修改Unity3d脚本默认模板?
众所周知,unity默认的模板总是Update()和Start(),但往往我们并不需要,每次都要手动删除非常麻烦. 但可以更改如下模板文件 C:\Program Files\Unity 2020.3. ...
- UNIT ONE
一.机器语言 1.机器指令 0与1构成 2.机器可以直接执行 二.汇编语言 1.汇编指令 要翻译成机器指令,机器才可以运行 2.给人看的,主要是人看得懂 VS 机器.汇编. ...
- PSPNet 代码分析
https://www.lmlphp.com/user/62501/article/item/1225624/ train.py 网络训练主函数,主要操作有: 传入训练参数:通常采用argparse库 ...
- C#TimeSpan时间差转换成分钟和秒数
public Form1() { InitializeComponent(); aa = DateTime.Now.ToString(); } string aa; private void butt ...
- 移动端H5开发坑位指南
一.HTML方向 调用系统功能 使用<a>能快速调用移动设备的电话/短信/邮件三大通讯功能,使用<input>能快速调用移动设备的的图库/文件. 这些功能方便了页面与系统的交互 ...
- 解决linux时间转换为yyyy-MM-dd
linux时间显示为:Tue Nov 30 09:33:04 CST 2021 SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd ...
- 记一次线上DB被打挂
这周刚新上了需求,在慢慢写代码的时候,突然报警群的消息多了,组长让我看看咋回事. 一开始没当回事,因为faas任务的错误日志一直很多,但是发现新的日志和以前大不相同,显示的是上游faas实例的连接被m ...
- java 将Excel数据读取到ListMap
将Excel数据读取到ListMap /** * 将Excel数据读取到ListMap * @param file */ public static List<Map<String, Ob ...
- IT工具知识-08:如何使用Openwrt下的SMB服务(第一次使用时)?
0.背景知识 使用固件:Lean的R20.5.9由flippy打包 需要软件:ssh客户端(我用的xshell),浏览器(最好是chrome内核) 1.使用教程 1.1 注释掉SAMBA模板中的某条指 ...