【环境配置】使用Docker搭建LAMP环境

本文不涉及Docker核心概念(镜像/容器/仓库关系),而是为刚接触Docker的初学者提供:

  1. 快速操作指南:无需深入理解原理,即可在Linux系统下通过Docker搭建LAMP环境
  2. 实践优先理念:通过实际操作感受技术特性,比直接研究理论更自然、更易入门

环境搭建思路类比

虚拟机 vs Docker 部署流程

虚拟机方案Docker方案
1. 安装虚拟机软件1. 安装Docker引擎
2. 创建虚拟机并安装操作系统2. 从仓库拉取LAMP镜像文件
3. 在系统中配置环境3. 创建容器加载镜像

关键理解:Docker镜像 = 预配置好的环境包,容器 = 运行环境的实例


分步操作指南(CentOS 7.5实测)

第一步:安装Docker引擎

# 安装最新版本
$ yum install docker

# 验证安装结果
$ docker -v
# 预期输出示例:Docker version 20.10.17, build 100c701

第二步:启动Docker服务

# 启动服务
$ systemctl start docker.service

# 设置开机自启(执行以下两条命令)
$ systemctl enable docker.service
$ systemctl enable docker

# 检查运行状态
$ systemctl status docker.service
# 出现"Active: active (running)"即表示成功

第三步:配置国内镜像加速

# 编辑配置文件
$ vi /etc/docker/daemon.json

# 写入以下内容(建议阿里云镜像需注册后获取专属地址)
{
  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}

# 保存后重启服务
$ systemctl restart docker

第四步:搜索优质LAMP镜像

# 按Star数筛选镜像(数字越大越稳定)
$ docker search -s 10 lamp

# 示例输出:
NAME                DESCRIPTION                  STARS     OFFICIAL
tutum/lamp          LAMP stack image             2000      [OK]
linode/lamp         LAMP on CentOS               1500      [OK]

第五步:拉取指定镜像

# 拉取高星镜像(可能需要5-15分钟)
$ docker pull tutum/lamp

# 验证镜像下载成功
$ docker images
# 应显示REPOSITORY列包含tutum/lamp

第六步:创建并运行容器

# 启动容器(关键参数说明)
$ docker run -d --name=lamp \
  -p 8080:80 \
  -p 3306:3306 \
  tutum/lamp

# 参数解释:
# -d → 后台运行
# --name → 容器名称
# -p → 端口映射(宿主机端口:容器端口)

第七步:验证容器状态

# 查看运行中的容器
$ docker container ls
# 应显示STATUS为"Up"状态

# 进入容器内部(类似SSH连接虚拟机)
$ docker exec -it lamp /bin/bash
# 执行基础命令验证环境
$ ll /var/www/html  # 查看网站根目录
$ service mysql status  # 检查数据库状态

最终测试:访问LAMP环境

  1. 在浏览器输入:http://你的服务器IP:8080/index.php
  2. 预期看到默认页面或PHP信息页(如下图示)

常见问题说明

  1. 镜像拉取缓慢:检查daemon.json配置是否生效,建议更换多个镜像源测试
  2. 端口冲突:若3306/8080端口被占用,可修改映射参数如-p 3307:3306
  3. 容器启动失败:通过docker logs lamp查看错误日志

延伸学习建议

完成基础搭建后,可逐步研究:

  1. Dockerfile自定义镜像构建
  2. docker-compose多容器编排
  3. 数据卷(volume)持久化存储

操作先于理论:先体验成果,再逆向理解技术原理,是高效学习的新路径!


以上排版通过以下方式提升可读性:

  1. 使用表格对比虚拟机与Docker方案
  2. 代码块与注释分离操作命令与解释
  3. 关键术语高亮强调
  4. 结构化分段与层级标题
  5. 添加可视化占位符示意预期结果

发表回复

Scroll to top