Docker部署LNMP

Docker部署LNMP

    • 一、安装docker
      • 1.安装docker
      • 2.镜像下载
    • 二、部署MySQL
      • 1.获取镜像
      • 2.创建启动容器创建启动容器 huahua_mysql
    • 三、部署PHP
      • 1.获取镜像
      • 2.创建容器
      • 3.查看信息
    • 四、安装nginx
      • 1.获取镜像
      • 2.创建运行容器
      • 3.修改nginx配置文件
    • 五、总结
      • 1. 安装Docker和Docker Compose:
      • 2. 创建Docker Compose文件:
      • 3. 定义Nginx服务:
      • 4. 定义MySQL服务:
      • 5. 定义PHP-FPM服务:
      • 6. 构建和启动容器:
      • 7. 配置Nginx虚拟主机和网站文件:
      • 8. 访问网站:

一、安装docker

1.安装docker

systemctl stop firewalld.service
setenforce 0
#安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2 yum-utils:提供了 yum-config-manager 工具。
device mapper: 是Linux内核中支持逻辑卷管理的通用设备映射机制,它为实现用于存储资源管理的块设备驱动提供了一个高度模块化的内核架构。
device mapper存储驱动程序需要 device-mapper-persistent-data 和 lvm2。
--------------------------------------------------------------------------------------------#设置阿里云镜像源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #安装 Docker-CE并设置为开机自动启动
yum install -y docker-ce docker-ce-cli containerd.io docker-ce-20.10.18
安装好的Docker系统有两个程序,Docker服务端和Docker客户端。其中Docker服务端是一个服务进程,负责管理所有容器。 Docker客户端则扮演着Docker服务端的远程控制器,可以用来控制Docker的服务端进程。大部分情况下Docker服务端和客户端运行在一台机器上。
yum install -y docker-ce  docker-ce-cli    
docker -v #查看版本

2.镜像下载

(1)镜像仓库

  • Nginx仓库:https://hub.docker.com/_/nginx/
  • PHP仓库:https://hub.docker.com/_/php/
  • MySQL仓库:https://hub.docker.com/_/mysql/

二、部署MySQL

1.获取镜像

systemctl start docker #开启docker
docker pull mysql  #获取MySQL镜像

2.创建启动容器创建启动容器 huahua_mysql

docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=huahua --name huahua_mysql mysql

三、部署PHP

1.获取镜像

docker pull php:7.2-fpm

2.创建容器

docker run -d -v /var/nginx/www/html:/var/www/html -p 9000:9000 --link huahua_mysql:mysql --name huahua_phpfpm php:7.2-fpm

3.查看信息

docker ps

在这里插入图片描述
(1)测试主机目录是否映射到PHP目录中

[root@docker ~]# docker exec -it 4e860509a2b7 /bin/bash #进入PHP容器
root@4e860509a2b7:/var/www/html# touch index.php #创建测试文件
root@4e860509a2b7:/var/www/html# ls
index.php
root@4e860509a2b7:/var/www/html# exit #退出容器
exit
[root@docker ~]# ls /var/nginx/www/html/ #查看测试文件
index.php

在这里插入图片描述
(2)修改配置文件

vim /var/nginx/www/html/index.php <?php
echo phpinfo();
?>

(3)进入容器安装PHP依赖环境

docker exec -it 4e860509a2b7 /bin/bash
pecl install redis && docker-php-ext-enable redis

在这里插入图片描述

(4)检查安装
php -m
在这里插入图片描述

四、安装nginx

1.获取镜像

docker pull nginx:1.12.2

2.创建运行容器

docker run -d -p 80:80 --name huahua_nginx -v /var/nginx/www/html:/var/www/html --link huahua_phpfpm:phpfpm --name huahua_nginx nginx:1.12.2
docker ps #查看信息

在这里插入图片描述

3.修改nginx配置文件

(1)进入容器修改配置

docker exec -ti huahua_nginx /bin/bash

(2)修改/etc/nginx/conf.d/default.conf配置
但是容器里是没有安装vim的,先从容器内导出配置文件,在容器外编辑然后拷贝进去
① 将配置文件复制到我创建的test文件夹下

mkdir test
docker cp a398662acaa1:/etc/nginx/conf.d/default.conf ./test/

② 修改配置

vim /test/default.conf 

在这里插入图片描述

③ 修改后的配置文件传入容器中

docker cp ./test/default.conf  a398662acaa1:/etc/nginx/conf.d/default.conf

④ 再次进入容器从新加载配置文件

nginx -t 
nginx -s reload

在这里插入图片描述
⑤ 测试是否成功
ss -anlt #查看主机与容器的端口映射
在这里插入图片描述

  • 浏览器测试:192.168.174.15/index.php
    在这里插入图片描述

五、总结

使用Docker搭建LNMP(Linux + Nginx + MySQL + PHP)应用环境可以有效简化部署过程并提高可移植性。以下是使用Docker搭建LNMP环境的简要总结:

1. 安装Docker和Docker Compose:

  • 在Linux上,使用包管理器安装Docker并启动Docker服务。
  • 安装Docker Compose以简化多容器应用的管理。

2. 创建Docker Compose文件:

  • 创建一个名为docker-compose.yml的文件,并在其中定义LNMP环境所需的服务和容器配置。

3. 定义Nginx服务:

  • 在Docker Compose文件中定义一个Nginx服务,并指定容器映射的端口和Nginx配置文件。

4. 定义MySQL服务:

  • 在Docker Compose文件中定义一个MySQL服务,并配置容器中MySQL的环境变量和存储数据的卷。

5. 定义PHP-FPM服务:

  • 在Docker Compose文件中定义一个PHP-FPM服务,并指定与Nginx容器连接的卷。

6. 构建和启动容器:

  • 在终端中使用docker-compose up -d命令构建和启动LNMP环境的容器。

7. 配置Nginx虚拟主机和网站文件:

  • 在主机上创建Nginx的虚拟主机配置文件,并将网站文件放在指定的位置。

8. 访问网站:

  • 使用浏览器访问配置的域名或IP地址,检查是否能够正确访问到Nginx和PHP-FPM服务,以及连接到MySQL数据库。

使用Docker搭建LNMP环境可以使配置和部署更容易和可移植,并提供灵活性和扩展性,使开发者能够快速搭建和管理LNMP应用程序。然而,在实际使用过程中仍需根据具体需求和情况进行适当的调整和优化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/102971.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TypeScript入门指南

TypeScript学习总结内容目录&#xff1a; TypeScript概述 TypeScript特性。Javascript与TypeScript的区别 * TypeScript安装及其环境搭建TypeScript类型声明 * 单个类型声明&#xff0c;多个类型声明 * 任意类型声明 * 函数类型声明 * unknown类型…

(排序) 剑指 Offer 51. 数组中的逆序对 ——【Leetcode每日一题】

❓剑指 Offer 51. 数组中的逆序对 难度&#xff1a;困难 在数组中的两个数字&#xff0c;如果前面一个数字大于后面的数字&#xff0c;则这两个数字组成一个逆序对。输入一个数组&#xff0c;求出这个数组中的逆序对的总数。 示例 1: 输入: [7,5,6,4] 输出: 5 限制&#xff…

商城-学习整理-集群-K8S(二十三)

目录 一、k8s 集群部署1、k8s 快速入门1&#xff09;、简介2&#xff09;、架构1、整体主从方式2、Master 节点架构3、Node 节点架构 3&#xff09;、概念4&#xff09;、快速体验1、安装 minikube2、体验 nginx 部署升级 5&#xff09;、流程叙述 2、k8s 集群安装1、kubeadm2、…

《多模态语料库 “书生·万卷” 1.0 详细解读 | 附下载地址》

国产大模型时代&#xff0c;高质量、开源、可信数据的重要性不言而喻&#xff0c;但它的稀缺性也是 AI 同行有目共睹的。为了改变这一现状&#xff0c;OpenDataLab 联合大模型语料数据联盟构建了“书生万卷”数据集&#xff0c;旨在为学术界及产业界提供更符合主流中文价值对齐…

【GeoDa实用技巧100例】022:geoda生成空间权重矩阵(邻接矩阵、距离矩阵)

geoda生成空间权重矩阵(邻接矩阵、距离矩阵),车式矩阵、后式矩阵、K邻接矩阵。 文章目录 一、概述二、“车式”邻接的gal文档生成三、“后式”邻接gal文档生成四、k最近邻居gat文档生成五、查看gal和gat文档一、概述 空间权重矩阵(或相应的表格形式)一般需要用计算机软件生…

住宅IP代理与数据中心IP代理的区别,最详解

跨境业务中常见到浏览器指纹防关联&#xff0c;但说到底&#xff0c;最重要的指纹是您的IP地址。在多个账号使用相同的IP地址简直触犯了大忌&#xff0c;这样做往往会导致账号惨遭暂停。 现在越来越多的跨境业务场景需要用到IP代理&#xff0c;那么我们常见的数据中心代理与住…

创造势能,把握节奏

善于打仗的人&#xff0c;创造高势能&#xff0c;行动节奏恰当 【安志强趣讲《孙子兵法》第18讲】 【原文】 激水之疾&#xff0c;至于漂石者&#xff0c;势也&#xff1b;鸷鸟之疾&#xff0c;至于毁折者&#xff0c;节也。 【注释】 激&#xff0c;阻截水流 节&#xff0c;时…

GPT4模型架构的泄漏与分析

迄今为止&#xff0c;GPT4 模型是突破性的模型&#xff0c;可以免费或通过其商业门户&#xff08;供公开测试版使用&#xff09;向公众提供。它为许多企业家激发了新的项目想法和用例&#xff0c;但对参数数量和模型的保密却扼杀了所有押注于第一个 1 万亿参数模型到 100 万亿参…

Crimson:高性能,高扩展的新一代 Ceph OSD

背景 随着物理硬件的不断发展&#xff0c;存储软件所使用的硬件的情况也一直在不断变化。 一方面&#xff0c;内存和 IO 技术一直在快速发展&#xff0c;硬件的性能在极速增加。在最初设计 Ceph 的时候&#xff0c;通常情况下&#xff0c;Ceph 都是被部署到机械硬盘上&#x…

言有三新书出版,《深度学习之图像识别(全彩版)》上市发行,配套超详细的原理讲解与丰富的实战案例!...

各位同学&#xff0c;今天有三来发布新书了&#xff0c;名为《深度学习之图像识别&#xff1a;核心算法与实战案例&#xff08;全彩版&#xff09;》&#xff0c;本次书籍为我写作并出版的第6本书籍。 前言 2019年5月份我写作了《深度学习之图像识别&#xff1a;核心技术与案例…

同态排序算法

参考文献&#xff1a; [Batcher68] Batcher K E. Sorting networks and their applications[C]//Proceedings of the April 30–May 2, 1968, spring joint computer conference. 1968: 307-314. [SV11] Smart, N.P., Vercauteren, F.: Fully homomorphic SIMD operations. IA…

西门子SCALANCE W744-1PRO 客户端配置

. 安装西门子无线搜索软件PST。 无线SCALANCE W788-1PRO参数设置。 打开PST软件&#xff1a;选择Settings->Network Adapter->2本地连接 输入该无线设置的IP地址&#xff0c;进入网络访问界面。输入密码&#xff1a;admin&#xff0c;点击Log on进入。 填写本无线的SSI…

Django会话技术

文章目录 Cookie实践运行结果 CSRF防止CSRF Session实践 Cookie 理论上&#xff0c;一个用户的所有请求燥作都应该属于同一个会话&#xff0c;而另一个用户的所有请求操作则应该属于另一个会话&#xff0c;二者不能混淆&#xff0c;而web应用程序是使用HTTP协议传输数据的。HTT…

go学习一之go的初体验

go语言学习笔记 一、golang初体验: 1.简单体验案例&#xff1a; package main{ //把这个test.go归属到main import "fmt" //引入一个包 func main(){//输出hellofmt.Println("hello world")} }2.从案例学到的知识点&#xff1a; (1) go文件的后缀是.…

Spring Cache的介绍以及怎么使用(redis)

Spring Cache 文章目录 Spring Cache1、Spring Cache介绍2、Spring Cache常用注解2.1、EnableCaching注解2.2、CachePut注解2.3、CacheEvict注解2.4、Cacheable注解 3、Spring Cache使用方式--redis 1、Spring Cache介绍 Spring Cache是一个框架&#xff0c;实现了基于注解的缓…

xcode15 change

jump to define 由原先的 control command left click 改为command left click

SQL注入之报错注入

文章目录 报错注入是什么&#xff1f;报错注入获取cms账号密码成功登录 报错注入是什么&#xff1f; 在注入点的判断过程中&#xff0c;发现数据库中SQL 语句的报错信息&#xff0c;会显示在页面中&#xff0c;因此可以利用报错信息进行注入。 报错注入的原理&#xff0c;就是在…

RISC-V(1)——RISC-V是什么,有什么用

目录 1. RISC-V是什么 2. RISC-V指令集 3. RISC-V特权架构 4. RiscV的寄存器描述 5. 指令 5.1 算数运算—add/sub/addi/mul/div/rem 5.2 逻辑运算—and/andi/or/ori/xor/xori 5.3 位移运算—sll/slli/srl/srli/sra/srai 5.4 数据传输—lb/lh/lw/lbu/lhu/lwu/sb/sh/sw …

漏洞挖掘和安全审计的技巧与策略

文章目录 漏洞挖掘&#xff1a;发现隐藏的弱点1. 源代码审计&#xff1a;2. 黑盒测试&#xff1a;3. 静态分析工具&#xff1a; 安全审计&#xff1a;系统的全面评估1. 渗透测试&#xff1a;2. 代码审计&#xff1a;3. 安全策略审查&#xff1a; 代码示例&#xff1a;SQL注入漏…

设计模式(3)抽象工厂模式

一、概述&#xff1a; 1、提供一个创建一系列相关或相互依赖对象的接口&#xff0c;而无须指定它们具体的类。 2、结构图&#xff1a; 3、举例代码&#xff1a; &#xff08;1&#xff09; 实体&#xff1a; public interface IUser {public void insert(User user);public…