news 2026/4/18 10:54:18

蓝易云 - Dockerfile制作镜像与搭建LAMP环境

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
蓝易云 - Dockerfile制作镜像与搭建LAMP环境

下面是一份工程级、可直接落地的《Dockerfile 制作镜像与搭建 LAMP 环境》完整说明,逻辑从原理 → 实操 → 验证 → 规范逐层展开,适合生产与学习双场景使用。


一、先把话说透:Docker + LAMP 的正确认知 🧠

LAMP = Linux + Apache + MySQL + PHP
Docker 的价值不在“装软件”,而在于:

  • 环境一次定义,到处一致运行

  • 部署过程可复制、可审计、可回滚

  • 避免宿主机污染

一句实话:

用 Docker 搭 LAMP,本质是在“固化运维经验”🔴


二、整体架构与工作流程(核心逻辑)

Dockerfile ↓ 构建镜像(Image) ↓ 运行容器(Container) ↓ Apache + PHP + MySQL 同时运行

🔁 工作流程说明表(Markdown / vditor 兼容)

阶段作用关键点
Dockerfile定义环境可审计、可复现
Image固化结果不可变
Container实例运行有状态
Volume数据持久化防止删库

三、Dockerfile:从零构建 LAMP 镜像(核心)

本例基于Ubuntu 22.04(当前长期支持版本)
方案选择Apache + PHP + MySQL(MariaDB)


1️⃣ Dockerfile 完整示例

FROM ubuntu:22.04

解释:

  • 指定基础镜像

  • 使用稳定、长期支持版本

  • 保证系统库兼容性 🔴


ENV DEBIAN_FRONTEND=noninteractive

解释:

  • 禁用安装过程中的交互

  • 避免构建卡死

  • Dockerfile 中的刚需配置


RUN apt update && apt install -y \ apache2 \ php \ php-mysql \ mariadb-server \ libapache2-mod-php \ && rm -rf /var/lib/apt/lists/*

解释逐条拆解:

  • apache2:HTTP 服务核心

  • php:PHP 解释器

  • php-mysql:PHP 与数据库通信

  • mariadb-server:MySQL 兼容数据库

  • libapache2-mod-php:Apache 解析 PHP

  • rm -rf:清理缓存,减小镜像体积🔴


RUN mkdir -p /var/www/html

解释:

  • 创建网站根目录

  • 与 Apache 默认配置保持一致


COPY index.php /var/www/html/index.php

解释:

  • 将本地 PHP 文件复制进镜像

  • 用于快速验证 PHP 是否可用


EXPOSE 80

解释:

  • 声明容器对外服务端口

  • 用于文档化和端口映射参考


CMD service mariadb start && apachectl -D FOREGROUND

解释(非常关键):

  • 启动数据库服务

  • Apache 以前台方式运行

  • Docker 容器必须有前台进程🔴


四、PHP 测试文件(index.php)

<?php phpinfo(); ?>

解释:

  • 输出 PHP 配置信息

  • 用于验证:

    • PHP 是否安装成功

    • Apache 是否解析 PHP


五、构建与运行镜像(实操步骤)

1️⃣ 构建镜像

docker build -t lamp-env .

解释:

  • -t lamp-env:镜像命名

  • .:当前目录作为构建上下文


2️⃣ 运行容器

docker run -d -p 8080:80 --name lamp-test lamp-env

解释逐项说明:

  • -d:后台运行

  • -p 8080:80:宿主 8080 → 容器 80

  • --name:容器命名,便于管理


3️⃣ 访问验证 🌐

浏览器访问:

http://服务器IP:8080

若看到 PHP 信息页面,说明:

Apache + PHP 已正常联动🔴


六、为什么“能跑”≠“可用”?(工程视角)

🔴 关键问题说明表

问题风险正确做法
数据库存容器内容器删除即丢数据使用 Volume
多服务一个容器可行但不优雅生产建议拆分
root 运行安全风险限权用户

七、推荐生产级改进方向(说实话)

  • 数据库独立容器

  • 使用 docker-compose 管理

  • 数据库目录挂载 Volume

  • 敏感信息使用环境变量

  • 不要在 Dockerfile 写密码🔴


八、核心总结(直击重点)

  • Dockerfile 是基础设施即代码

  • LAMP 容器化是环境标准化

  • 能跑只是第一步,可维护才是终点

  • Docker 不是省事,是降低长期成本


如果你愿意,下一步我可以直接帮你:

  • 🔧 拆成Apache + PHP + MySQL 三容器方案

  • 🔐 加入持久化 Volume + 权限优化

  • 🚀 给你一套生产级 docker-compose LAMP 架构

  • 🧩 对接你现有蓝易云 CDN / 高防节点

这一步做好,后面所有部署都会变得“可控、可预测”。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 2:57:37

Clang 17编译C++26项目踩坑实录,这6个错误你不得不防

第一章&#xff1a;Clang 17与C26的兼容性概览Clang 17 作为 LLVM 项目的重要组成部分&#xff0c;进一步增强了对最新 C 标准的支持。尽管 C26 尚未正式发布&#xff0c;其核心语言特性和库改进已在 Clang 17 中以实验性或部分实现的形式出现。开发者可通过启用特定编译标志来…

作者头像 李华
网站建设 2026/4/18 7:54:20

计算机毕业设计springboot医院资产管理系统 基于SpringBoot的智慧医院固定资产全生命周期管理平台 SpringBoot+Vue构建的医院设备与耗材运营管控系统

计算机毕业设计springboot医院资产管理系统3d2ldm79 &#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。 在“互联网医疗”快速渗透的当下&#xff0c;医院固定资产规模逐年攀升&…

作者头像 李华
网站建设 2026/4/17 16:11:54

lora-scripts开源工具全解析:快速实现Stable Diffusion与LLM的LoRA微调

lora-scripts开源工具全解析&#xff1a;快速实现Stable Diffusion与LLM的LoRA微调 在AI生成技术迅速普及的今天&#xff0c;越来越多开发者和创作者希望将大模型“据为己用”——不是简单地调用通用接口&#xff0c;而是让模型真正理解自己的风格、语言或业务逻辑。然而&#…

作者头像 李华
网站建设 2026/4/18 6:32:27

【C++26先行者必看】:利用Clang 17解锁实验性特性的4种方法

第一章&#xff1a;C26新特性概览与Clang 17支持现状随着C标准的持续演进&#xff0c;C26正逐步成形&#xff0c;聚焦于提升语言表达力、运行效率与开发体验。尽管C26尚未正式发布&#xff0c;但多个核心提案已进入技术审查后期阶段&#xff0c;部分功能已在主流编译器中实现实…

作者头像 李华
网站建设 2026/4/17 18:34:01

lora-scripts输出格式定制功能揭秘:让大模型按模板返回JSON数据

lora-scripts输出格式定制功能揭秘&#xff1a;让大模型按模板返回JSON数据 在医疗问诊系统中&#xff0c;如果医生每次提问后&#xff0c;AI返回的内容一会儿是段落、一会儿是列表、一会儿又夹杂着推理过程&#xff0c;下游系统几乎无法自动解析关键信息——这种“说得对但不规…

作者头像 李华
网站建设 2026/4/18 8:20:07

Lustre高性能并行文件系统加速lora-scripts大规模IO操作

Lustre高性能并行文件系统加速lora-scripts大规模IO操作 在AI模型微调日益普及的今天&#xff0c;一个看似不起眼却致命的问题正在拖慢整个训练流程&#xff1a;I/O瓶颈。尤其是使用像 lora-scripts 这类自动化LoRA训练工具时&#xff0c;频繁读取图像数据、加载基础模型、保存…

作者头像 李华