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用来隔离应用还是很方便的,一来本身的操作较为简单,二来资源占用也比虚拟机要小得多,三来也较为安全,因为像数据库这样的应用不会再全局暴露端口,同时应用间的通信通过加密和端口转发,更加安全. ...
随机推荐
- (jmeter笔记)添加正则提取器和JSON提取器
添加正则提取器和JSON提取器 1.正则提取器: 返回的Token如下: 引用名称:可以理解为变量名 //调用表示${变量名} 正则表达式:"Token":"(.+?)& ...
- MYSQL实现排名函数RANK,DENSE_RANK和ROW_NUMBER
1. 排名分类 1.1 区别RANK,DENSE_RANK和ROW_NUMBER RANK并列跳跃排名,并列即相同的值,相同的值保留重复名次,遇到下一个不同值时,跳跃到总共的排名. DENSE_RAN ...
- fio - IO测试工具
目前主流的第三方IO测试工具有fio.iometer和Orion,这三种工具各有千秋. fio在Linux系统下使用比较方便,iometer在window系统下使用比较方便,Orion是oracle的 ...
- 2.对于script标签的放置位置
使用<script>元素有两种方式 一种是在页面嵌入JavaScript代码 ,一种就是包含外部JavaScript文件 包含在<script>标签内部的JavaScript代 ...
- python菜鸟学习: 7. 购物车升级版,用户、商品信息存储,修改,新增
# -*- coding: utf-8 -*-import os'''用户入口:1. 商品信息存在文件里2. 已购商品,余额记录商家入口1. 可以添加商品,修改商品价格商品信息:commdList.t ...
- 解决vue 移动端项目“切换页面,页面置顶”后报错为:"TypeError: Cannot set property 'scrollTop' of null"
参考原代码链接:https://www.cnblogs.com/wayneliu007/p/11932204.html 报错截图: 解决方法: 导入的getScrollParent为真返回的null ...
- Linux CentOS 8系统离线升级内核版本
Linux CentOS 8系统离线升级内核版本 搬运如下文章,十分感谢 https://blog.csdn.net/WQwinter/article/details/127231086 二.升级步骤 ...
- vue 封装时间格式化和number精确度
//format.js 公用js /** * Parse the time to string * @param {(Object|string|number)} time * @param {str ...
- 双指针_Leetcode刷题_13/100
算法解释 双指针主要用于遍历数组,两个指针指向不同的元素,从而协同完成任务.也可以延伸到多个数组的多个指针. 若两个指针指向同一个数组,遍历的方向相同且不会相交,则也称为滑动窗口: 若两个指针指向同一 ...
- VSCode Snippet
{ // Place your snippets for javascript here. Each snippet is defined under a snippet name and has a ...