使用docker-compose搭建LNMP环境详细教程

0 下载量 22 浏览量 更新于2024-08-28 收藏 70KB PDF 举报
"使用Docker通过docker-compose搭建LNMP(Nginx、PHP、MySQL)环境,详细介绍了docker-compose.yml配置文件的内容,包括Nginx、PHP和MySQL服务的设置,以及端口映射、数据卷共享和环境变量的配置。" 在现代Web开发中,Docker提供了一种轻量级的虚拟化技术,使得开发者可以方便地打包和部署应用。本资源主要讲解如何使用Docker Compose来构建LNMP(Linux、Nginx、MySQL、PHP)环境,这是一个常见的Web服务架构,适用于PHP驱动的网站和应用程序。 首先,`docker-compose.yml`文件是Docker Compose的配置文件,用于定义和运行多容器的应用。在这个例子中,配置了三个服务:`web`(Nginx)、`php`(PHP-FPM)和`database`(MySQL)。 `web`服务使用官方的Nginx镜像(1.11.10版本),将主机的8080端口映射到容器的80端口,使得外部可以通过8080端口访问Nginx。它依赖于`php`服务,并且与`php`服务共享`./apps`目录,这样Nginx可以访问PHP应用程序的代码。此外,还创建了一个只读的数据卷,将`./images/nginx/config`目录挂载到Nginx的配置目录`/etc/nginx/conf.d`,允许自定义Nginx配置。 `php`服务使用PHP 7.1-fpm镜像,将`./apps`目录挂载到`/mnt/apps`,使得PHP可以处理这个目录中的PHP文件。 `database`服务基于MySQL 5.7镜像,设置了环境变量以初始化数据库的root密码、用户和密码。`./database`目录被挂载到MySQL的数据存储目录`/var/lib/mysql`,这样即使容器重启,数据也不会丢失。 在Nginx的配置中,`default.conf`文件定义了一个服务器块,监听80端口,服务器名称设为`localhost`,根目录指向`/mnt/apps`,并指定了PHP处理器。这意味着当请求无法找到静态文件时,会尝试执行PHP解释器处理请求。 通过这种方式,Docker Compose使得部署LNMP环境变得简单和高效,避免了在各个服务之间手动配置和同步的麻烦。同时,由于每个服务都在自己的容器中运行,它们之间的依赖关系得到了清晰的定义,也易于扩展和维护。