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.hqwc.cn/news/84310.html

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

相关文章

将AI融入CG特效工作流;对谈Dify创始人张路宇;关于Llama 2的一切资源;普林斯顿LLM高阶课程;LLM当前的10大挑战 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f916; 将AI融入CG特效工作流&#xff0c;体验极致的效率提升 BV1pP411r7HY 这是 B站UP主 特效小哥studio 和 拓星研究所 联合投稿的一个AI特…

ResNet 模型原理

ResNet与Vgg的主要区别&#xff1a; 1.ResNet相较于Vgg具有更加深的网络结构 2.ResNet相较于Vgg引入了残差连接的结构 3.ResNet引入了BatchNorm层&#xff0c;使得ResNet能够训练更加深的网络结构 4.ResNet使用stride2的卷积层代替了Vgg中池化层进行下采样 5.ResNet相较于…

GitLab与GitLab Runner安装(RPM与Docker方式),CI/CD初体验

背景 GitLab 是一个强大的版本控制系统和协作平台&#xff0c;记录一下在实际工作中关于 GitLab 的安装使用记录。 一开始使用 GitLab 时&#xff0c;是在 CentOS7 上直接以 rpm 包的方式进行安装&#xff0c;仅作为代码托管工具来使用&#xff0c;版本&#xff1a; 14.10.4 …

开源的安全性:挑战与机会

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

ctfshow-web13 文件上传

0x00 前言 CTF 加解密合集CTF Web合集 0x01 题目 0x02 Write Up 首先看到是一个上传页面&#xff0c;测试其他无果&#xff0c;遂进行目录遍历&#xff0c;发现upload.php.bak文件 可以看到这里的限制条件&#xff0c;大小&#xff0c;以及内容&#xff0c;这里可以使用.use…

在Eclipse中创建javaweb工程

新建动态web工程 点击project或other之后&#xff0c;如何快速找到Dynamic Web Project 填写工程名等详细信息 也许会出现下面的对话框 项目结构图

PC上架货源的方式

PC上架货源的方式 第一步建立文档夹 给他发一个snipaste的文件包 1、第一步搜索1688 移动端上架货源的方式 货源上架 弄两个方框&#xff0c;上架货源&#xff0c;先下载软件

SpingMVC拦截器-异常处理的思路,用户体验不好的地方

1、异常处理机制 1.1 原先我们的异常都是手动的try..catch() 2、他存在着一些缺陷&#xff1a;这里创建了一个Demo的controller,内部有一个show方法&#xff1a; 3、访问内部&#xff0c;我要实现demoshow方法&#xff0c;我们来调用show1和show2的方法&#xff1a; 4、有一…

SpringCloud组件总结

原链接如下&#xff1a; https://www.processon.com/view/link/64e85fe76b2cbb581a3835bc 访问密码&#xff1a;afGw 如图&#xff1a;

【Git】学习总结

【Git】学习总结 【一】安装【二】Git克隆项目代码【1】idea下载git项目【2】创建新的分支【3】新建的分支推送到远程【4】合并最新代码到主分支【5】切换分支 【三】提交本地项目到远程&#x1f680;1. 配置 Git&#x1f680;2. 创建项目远程仓库&#x1f680;3. 初始化本地仓…

解决git上传远程仓库时的大文件提交

在git中超过100M的文件会上传失败&#xff0c;而当一个文件超过50M时会给你警告&#xff0c;如下 warning: File XXXXXX is 51.42 MB; this is larger than GitHubs recommended maximum file size of 50.00 MB 解决这种问题&#xff0c;首先在项目的.git文件夹中找到.gitigno…

ArcGIS学习总结(19)——要素转点与空间连接(属性表字段映射)

1.在新创建的面矢量数据的属性表中没有对应的字段信息&#xff0c;为了能够和有属性信息的数据进行匹配&#xff0c;使其具有对应字段的信息。 2.需要匹配的矢量文件属性表信息。 3.对新创建的矢量文件执行要素转点&#xff1a;数据管理工具→要素→要素转点。 4.选择分析工…