项目简介
本项目借助 Docker 快速部署包含 Nginx、MySQL、PHP 和 Redis 的 LNMP 环境。利用 Docker 容器化技术,能让开发者在不同环境轻松构建和运行应用程序,保证开发、测试和生产环境的一致性。
项目的主要特性和功能
- 容器化部署:运用 Docker 容器化技术,将 Nginx、MySQL、PHP 和 Redis 分别打包成独立容器,方便管理与扩展;通过 Docker Compose 一键启动所有服务,简化部署流程。
- 环境隔离:各服务在独立容器中运行,互不干扰,保障环境隔离和安全性。
- 快速构建:使用 Dockerfile 和 Docker Compose 文件,可快速构建和启动整个 LNMP 环境。
- 灵活配置:提供灵活配置选项,可按需自定义 Nginx、MySQL、PHP 和 Redis 的配置文件。
- 扩展性:支持添加自定义的 PHP 扩展和 Composer 依赖,满足不同项目需求。
- 性能优化:采用 Alpine Linux 作为基础镜像,减小镜像体积,提升性能。
安装使用步骤
1. 安装 Docker
依据操作系统选择合适的 Docker 安装方式:
- Windows:参考 Docker 安装指南
- Linux:
bash
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 exec
或 nsenter
命令进入容器内部进行调试和操作。
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】