docker 使用官方镜像搭建 PHP 环境
一、所需环境:
1、PHP:7.4.33-fpm 的版本
2、Nginx:1.25.1 的版本
3、MySQL: 5.7 的版本
4、Redis:7.0 的版本
1.1、拉取官方的镜像
docker pull php:7.4.33-fpm
docker pull nginx:1.25.1
docker pull mysql:5.7
docker pull redis:7.0

二、安装
2.1、 备注说明
本次安装使用 docker-compose 进行安装。 由于 PHP、Nginx、MySQL的有些文件需要从容器中复制到宿主机,直接使用数据卷的话,安装会出现一些问题,所以安装之前,需要进行文件的复制。 先简单的启动容器,复制文件成功后,再删除对应的容器。
2.2、启动容器
docker run --name nginx -p 80:80 -d nginx:1.25.1 /bin/bashdocker run --name php74 -it php:7.4.33-fpm /bin/bashdocker run --name mysql57 -it mysql:5.7 /bin/bash
2.3、复制文件
a)、PHP:php-fpm.d、php 这两个都是目录
docker cp php74:/usr/local/etc/php-fpm.d /var/docker-data/php/php-fpm.ddocker cp php74:/usr/local/etc/php /var/docker-data/php/conf.d
b)、Nginx:nginx.conf 是文件。 /var/www 是存放PHP代码的目录
docker cp nginx:/etc/nginx/nginx.conf /var/docker-data/nginx/nginx.confdocker cp nginx:/etc/nginx/conf.d /var/docker-data/nginx/conf.ddocker cp nginx:/usr/share/nginx/html /var/www/
c)、MySQL
docker cp mysql57:/etc/my.cnf /var/docker-data/mysql/my.cnf
PHP、Nginx的目录结构:

2.4、删除容器:
docker rm -f php74docker rm -f nginxdocker rm -f mysql57
2.5、编写 docker-compose.yml 文件。
docker-compose.yml 文件放在了最后


三、简单测试:

Nginx 配置:
server {listen 80;listen [::]:80;server_name localhost;root /var/www/test;#access_log /var/log/nginx/host.access.log main;location / {index index.html index.htm index.php;autoindex off;}location ~ \.php(.*)$ {fastcgi_pass php:9000;fastcgi_index index.php;fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;fastcgi_param PATH_INFO $fastcgi_path_info;fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;include fastcgi_params;}}

四、docker-compose.yml
version: '3.8'
services:php:container_name: php74image: php:7.4.33-fpmrestart: alwaysprivileged: trueports:- "9000:9000"volumes:- "/var/www:/var/www" # php代码目录- "/var/docker-data/php/conf.d:/usr/local/etc/php" - "/var/docker-data/php/php-fpm.d:/usr/local/etc/php-fpm.d"nginx:container_name: nginximage: nginx:1.25.1privileged: truerestart: alwaysenvironment:- TZ=Asia/Shanghaiports:- "80:80"- "443:443"depends_on:- "php"volumes:- "/var/docker-data/nginx/nginx.conf:/etc/nginx/nginx.conf" # 主配置文件-不是目录- "/var/docker-data/nginx/conf.d:/etc/nginx/conf.d"- "/var/www:/var/www" # php代码目录- "/var/docker-data/nginx/log:/var/log/nginx"mysql:image: mysql:5.7container_name: mysql57privileged: truerestart: alwaysports:- "3306:3306"volumes:- /var/docker-data/mysql/data:/var/lib/mysql # mysql数据目录- /var/docker-data/mysql/my.cnf:/etc/my.cnf- /var/docker-data/mysql/log:/var/log/mysql- /etc/localtime:/etc/localtime:ro # 让容器的时钟与宿主机时钟同步,避免时间的问题environment:- MYSQL_ROOT_PASSWORD=123456 # root账户密码redis:image: redis:7.0container_name: redisprivileged: truerestart: alwaysports:- "6379:6379"command: redis-server /usr/local/redis/conf/redis.confvolumes:- /var/docker-data/redis/data:/data- /var/docker-data/redis/conf/redis.conf:/usr/local/redis/conf/redis.conf
相关文章:
docker 使用官方镜像搭建 PHP 环境
一、所需环境: 1、PHP:7.4.33-fpm 的版本 2、Nginx:1.25.1 的版本 3、MySQL: 5.7 的版本 4、Redis:7.0 的版本 1.1、拉取官方的镜像 docker pull php:7.4.33-fpm docker pull nginx:1.25.1 docker pull mysql:5.7 do…...
STM32CubeIDE基础学习-STM32CubeIDE软件偏好设置
STM32CubeIDE基础学习-STM32CubeIDE软件偏好设置 文章目录 STM32CubeIDE基础学习-STM32CubeIDE软件偏好设置前言第1章 设置字体颜色第2章 设置字体大小第3章 设置代码区背景颜色总结 前言 编程软件环境最好就设置一个自己喜欢的界面进行显示,这样看起来会比较舒服些…...
【《高性能 MySQL》笔记】性能优化
学习知识最快最好的方式就是问对问题。 本文将通过“问正确的问题”的方式循序渐进地深入总结性能优化相关知识。 性能优化基础 Q1:什么是“性能”? 即响应时间(RT,Response Time),完成某个任务所需要的时间度量。 Q2:什么是“性能优化”? 性能优化为在一定工作负…...
Spring AOP底层原理
目录 代理模式 静态代理 动态代理 1. JDK动态代理 创建⼀个代理对象并使用 2. CGLIB动态代理 SpringAOP底层原理面试 代理模式 Spring AOP是基于动态代理模式来实现的 代理模式:静态代理模式动态代理模式 代理模式, 也叫委托模式。 定义:为其…...
proteus8.9 示波器放大
proteus8.9 示波器放大** 1. 打开放大:Windows徽标键 加号 2. 取消放大:Windows徽标键 ESC...
代码随想录训练营第41天 | 动态规划:01背包理论基础、动态规划:01背包理论基础(滚动数组)、LeetCode 416.分割等和子集
动态规划:01背包理论基础 文章讲解:代码随想录(programmercarl.com) 视频讲解:带你学透0-1背包问题!_哔哩哔哩_bilibili 动态规划:01背包理论基础(滚动数组) 文章讲解:代码随想录(…...
1908_Arm Cortex-M3的实现
1908_Arm Cortex-M3的实现 全部学习汇总: g_arm_cores: ARM内核的学习笔记 (gitee.com) 这是第一次看一份这样的手册,之前的MCU编程基本上就是专注于软件接口方面。而OS等方面的一些功能基本上都是用了现成的解决方案,因此也就没有过多的关注…...
编程笔记 html5cssjs 005 小学数学四则运算练习
编程笔记 html5&css&js 005 小学数学四则运算练习 一、代码二、解释 这段代码定义了一个页面,用于小学数学四则运算的练习。这可能有点难,实际如果需要可以通过更改代码来达到要求。 一、代码 <!DOCTYPE html> <html lang"zh&quo…...
【大厂AI课学习笔记NO.71】AI算力芯片GPU/TPU等
AI算力芯片的发展历程 人工智能(AI)算力芯片的发展历程紧密地跟随着AI技术的发展脚步。从早期的基于传统中央处理器(CPU)的计算,到图形处理器(GPU)的广泛应用,再到专门为AI设计的处…...
浅谈Redis和分布式系统
浅谈Redis Redis用于存储数据,且在内存当中进行存储。 但是在日常编写代码中,定义一个变量也就属于在内存当中存储一个数据。 Redis主要会在分布式系统当中发挥重要作用,如果只是单机程序,直接通过变量存储数据的方式会比使用Re…...
微信小程序onLoad加载定义好的函数
这里小程序开发中容易犯的错误-1 给客户做一个程序。需要在页面加载的时候在onLoad(options){}中加载定义好的函数,代码如下 onLoad(options) {get_week_()},运行时老报错 后来修改为正确的代码 onLoad(options) {this.get_week_()//必须加this},再尝试运行&#x…...
C++进阶:详细讲解继承
现在也是结束了初阶部分的内容,今天开始就进入进阶部分了。一刻也没有为初阶的结束而哀悼,立刻赶来“战场”的是进阶部分里的继承 文章目录 1.继承的概念和定义1.1继承的概念1.2继承的定义1.2.1继承的格式1.2.2再讲访问限定符(详讲protected)1.2.3**继承…...
第十一篇 - 应用于市场营销视频场景中的人工智能和机器学习技术 – Video --- 我为什么要翻译介绍美国人工智能科技巨头IAB公司(1)
IAB平台,使命和功能 IAB成立于1996年,总部位于纽约市。 作为美国的人工智能科技巨头社会媒体和营销专业平台公司,互动广告局(IAB- the Interactive Advertising Bureau)自1996年成立以来,先后为700多家媒体…...
基于决策树实现葡萄酒分类
基于决策树实现葡萄酒分类 将葡萄酒数据集拆分成训练集和测试集,搭建tree_1和tree_2两个决策树模型,tree_1使用信息增益作为特征选择指标,B树使用基尼指数作为特征选择指标,各自对训练集进行训练,然后分别对训练集和测…...
上位机图像处理和嵌入式模块部署(qmacvisual三个特色)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 了解了qmacvisual的配置之后,正常来说,我们需要了解下不同插件的功能是什么。不过我们不用着急,可以继续学习下…...
电脑解锁后黑屏有鼠标--亲测!!不需要重装系统!!
问题:上周电脑黑屏,只有鼠标,鼠标还不能右键!! 中招:win10系统最新版火绒安全 ,那你有概率获得开机黑屏套餐一份。 原因是:火绒把我们的explorer删除了导致黑屏,这个文…...
Spring 事务的种类 ? 传播机制 ?
在Spring框架中,事务管理可以分为编程式事务和声明式事务两种主要形式。每种形式都有其特点和使用场景。以下是这两种形式的具体介绍: 编程式事务 编程式事务是通过编写代码来实现事务管理的。在Spring中,编程式事务管理通常通过Transactio…...
深入了解 Java 方法和参数的使用方法
Java 方法 简介 方法是一块仅在调用时运行的代码。您可以将数据(称为参数)传递到方法中。方法用于执行特定的操作,它们也被称为函数。 使用方法的原因 重用代码:定义一次代码,多次使用。提高代码的结构化和可读性。…...
自动驾驶技术解析与关键步骤
目录 前言1 自动驾驶主要技术流程1.1 车辆周围环境感知1.2 车辆和行人检测分析1.3 运动轨迹规划 2 关键技术概述2.1 车辆探测与图片输入2.2 行人检测2.3 运动规划2.4 电子地图2.5 轨迹预测2.6 交通灯分析2.7 故障检测 结语 前言 自动驾驶汽车作为未来交通领域的重要发展方向&a…...
[Electron]中IPC进程间通信
Electron中IPC 进程间通信 (IPC) 是在 Electron 中构建功能丰富的桌面应用程序的关键部分之一。在 Electron 中,进程使用 ipcMain 和 ipcRenderer 模块,通过开发人员定义的“通道”传递消息来进行通信。 本文介绍以下几个方面: 1-渲染进程到…...
ONNX模型转换实战:从PyTorch到TensorRT的完整优化指南
ONNX模型转换实战:从PyTorch到TensorRT的完整优化指南 在AI模型部署的最后一公里,推理速度往往成为决定产品成败的关键因素。想象一下这样的场景:你的PyTorch模型在训练时表现优异,但到了生产环境却因为推理延迟过高而无法满足实时…...
18650圆柱锂电池的COMSOL模型参数配置与生热研究
出一个18650圆柱锂电池comsol模型 参数已配置,生热研究搞锂电池仿真总得和热管理打交道。今天咱们手把手教你搭个靠谱的18650圆柱电池COMSOL模型,重点看生热规律。先画个几何模型——直径18mm高度65mm的标准尺寸,别傻乎乎地画实心圆柱&#x…...
【生成式AI商业变现黄金公式】:20年实战验证的7大可落地商业模式与避坑指南
第一章:生成式AI应用商业模式创新探索 2026奇点智能技术大会(https://ml-summit.org) 生成式AI正从技术能力层快速下沉至商业价值层,驱动企业重构产品形态、服务边界与收入结构。传统SaaS按席位或功能模块收费的模式,正在被基于调用频次、生…...
3大技术突破:nanoMODBUS如何重塑嵌入式工业通信的轻量化标准
3大技术突破:nanoMODBUS如何重塑嵌入式工业通信的轻量化标准 【免费下载链接】nanoMODBUS A compact MODBUS RTU/TCP C library for embedded/microcontrollers 项目地址: https://gitcode.com/gh_mirrors/na/nanoMODBUS 在工业物联网和边缘计算蓬勃发展的今…...
MATLAB强化学习模型打包exe实战:如何让没有MATLAB的电脑也能运行你的RL算法
MATLAB强化学习模型打包exe实战:跨平台部署全流程解析 当你的强化学习算法在MATLAB中调试完美后,如何让没有安装MATLAB的客户或边缘设备也能运行?这就像把一道精心烹制的大餐打包成便携餐盒——既要保留原汁原味,又要适应不同&quo…...
从0到1构建121m纯电动汽车Simulink仿真模型,详细步骤与实际操作文档,带您提升建模能...
121m 纯电动汽车Simulink仿真模型建模详细步骤。 通过文档的形式,跟着文档一步一步操作,既可以提高自己的建模能力,又可以对整个建模思路进行借鉴,形成设计能力。 附带模型。 丶刚接触电动汽车仿真那会儿,总被各种专业…...
技术主管揭秘:AI 辅助开发工作流程,兼顾速度与软件可维护性!
核心思想:用文字思考,而非代码AI 擅长实现,但不擅长弄清楚你真正想要什么、发现你忘记明确的假设以及指出你对问题心理模型的错误,这是你的工作。我最有价值的转变是,将每个功能先视为思考问题,再视为实现问…...
Agent 如何帮助企业实现业务的扩张?2026 企业智能自动化落地全指南
站在2026年4月的技术周期节点,全球人工智能产业正经历着从“模型爆发”向“智能体(AI Agent)大规模商用”的范式转移。随着GPT-6等超大规模语言模型的面世以及边缘计算能力的普及,AI Agent已正式告别实验室的演示阶段,…...
如何用ExplorerPatcher在5分钟内让Windows 11变回你熟悉的模样
如何用ExplorerPatcher在5分钟内让Windows 11变回你熟悉的模样 【免费下载链接】ExplorerPatcher This project aims to enhance the working environment on Windows 项目地址: https://gitcode.com/GitHub_Trending/ex/ExplorerPatcher 你是不是刚升级到Windows 11&am…...
从雷达抗干扰到智能音箱降噪:深入浅出聊聊MVDR波束形成的实战应用与调参心得
从雷达抗干扰到智能音箱降噪:MVDR波束形成的实战调参指南 在嘈杂的会议室里,智能音箱如何准确捕捉你的声音?自动驾驶汽车如何从复杂环境中识别障碍物反射的雷达信号?这些看似不相关的场景背后,都依赖一项关键技术——M…...
