littlebot
Published on 2025-04-08 / 1 Visits
0

【源码】基于 Docker 的 LNMP 环境部署

项目简介

本项目借助 Docker 快速部署包含 Nginx、MySQL、PHP 和 Redis 的 LNMP 环境。利用 Docker 容器化技术,能让开发者在不同环境轻松构建和运行应用程序,保证开发、测试和生产环境的一致性。

项目的主要特性和功能

  1. 容器化部署:运用 Docker 容器化技术,将 Nginx、MySQL、PHP 和 Redis 分别打包成独立容器,方便管理与扩展;通过 Docker Compose 一键启动所有服务,简化部署流程。
  2. 环境隔离:各服务在独立容器中运行,互不干扰,保障环境隔离和安全性。
  3. 快速构建:使用 Dockerfile 和 Docker Compose 文件,可快速构建和启动整个 LNMP 环境。
  4. 灵活配置:提供灵活配置选项,可按需自定义 Nginx、MySQL、PHP 和 Redis 的配置文件。
  5. 扩展性:支持添加自定义的 PHP 扩展和 Composer 依赖,满足不同项目需求。
  6. 性能优化:采用 Alpine Linux 作为基础镜像,减小镜像体积,提升性能。

安装使用步骤

1. 安装 Docker

依据操作系统选择合适的 Docker 安装方式: - Windows:参考 Docker 安装指南 - Linuxbash curl -sSL https://get.docker.com/ | sh sudo systemctl enable docker.service sudo service docker start|restart|stop chmod +x /usr/local/bin/docker-compose

2. 复制项目

bash cd docker-lnmp

3. 启动容器

bash chmod 777 ./redis/redis.log chmod -R 777 ./redis/data docker-compose up -d

4. 测试环境

使用 docker ps 查看容器启动状态,确保所有容器正常启动。然后通过以下 URL 进行测试: - http://127.0.0.1 - http://127.0.0.1/index.php - http://127.0.0.1/db.php - http://127.0.0.1/redis.php

5. 进入容器内部

可使用 docker execnsenter 命令进入容器内部进行调试和操作。

6. PHP 扩展安装

在 PHP 的 Dockerfile 中添加以下命令来安装 PHP 扩展: dockerfile RUN apk add libpng-dev \ && docker-php-ext-install pdo_mysql mysqli pcntl gd

7. Composer 安装

在 Dockerfile 中添加以下命令来安装 Composer: bash RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin/ --filename=composer

8. 常见问题处理

  • Redis 启动失败:确保挂载的目录有写入权限。
  • MySQL 连接失败:检查 MySQL 8 的密码认证方式,必要时修改为 mysql_native_password

9. 常用命令

bash docker start <容器名> docker stop <容器名> docker run -d <镜像名> docker ps docker logs --tail 10 -tf <容器名> docker top <容器名> docker exec -d <容器名> touch /etc/new_config_file docker run --restart=always --name <容器名> -d ubuntu /bin/sh -c "while true;do echo hello world; sleep 1; done" docker inspect <容器名> docker rm <容器ID> docker rmi $(docker images -aq) docker images docker pull <镜像名:标签> docker search <镜像名> docker build -t='AT/web_server:v1' docker login docker commit -m="comment " --author="AT" <容器ID> <镜像的用户名/仓库名:标签> docker history <镜像ID> docker port <镜像ID> <端口> docker push <镜像名> docker rmi <镜像名> docker attach <容器ID>

10. Dockerfile 语法

  • MAINTAINER:标识镜像的作者和联系方式。
  • EXPOSE:指定容器对外公开的端口。
  • FROM:指定基础镜像。
  • RUN:运行命令。
  • ENV:设置环境变量。
  • VOLUME:添加卷。
  • ADD:复制文件到镜像中。
  • USER:指定运行镜像的用户。
  • COPY:复制本地文件到镜像中。

11. docker-compose.yml 语法说明

  • image:指定镜像名称或镜像 ID。
  • build:指定 Dockerfile 所在文件夹的路径。
  • command:覆盖容器启动后默认执行的命令。
  • links:链接到其他服务容器。
  • external_links:链接到外部容器。
  • ports:暴露端口信息。
  • expose:暴露端口。
  • volumes:设置卷挂载的路径。
  • volumes_from:挂载另一个服务或容器的所有数据卷。
  • environment:设置环境变量。
  • env_file:从文件中获取环境变量。
  • extends:基于已有的服务进行服务扩展。
  • net:设置网络模式。
  • pid:和宿主机系统共享进程命名空间。
  • dns:配置 DNS 服务器。
  • cap_add, cap_drop:添加或放弃容器的 Linux 能力。
  • dns_search:配置 DNS 搜索域。

通过以上步骤,可快速搭建基于 Docker 的 LNMP 环境并进行开发和测试。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】