使用 Docker 构建 LNMP 环境并实现 hosts 映射

一、整体流程

在构建 LNMP (Linux, Nginx, MySQL, PHP) 环境之前,我们需要有一个清晰的步骤和流程。以下是实现这一目标的主要步骤。

步骤 内容
1 安装 Docker 和 Docker Compose
2 创建 Docker Compose 文件
3 配置 Nginx
4 配置 PHP-FPM
5 配置 MySQL
6 配置 hosts 文件
7 启动 Docker 容器并验证

二、步骤详解

1. 安装 Docker 和 Docker Compose

首先,你需要在你的机器上安装 Docker 和 Docker Compose。具体的安装过程请参考 [Docker 官方文档]( 和 [Docker Compose 文档](

docker --version   # 输出你安装的 Docker 版本
docker-compose --version   # 输出你安装的 Docker Compose 版本

2. 创建 Docker Compose 文件

在你的项目目录下创建一个叫 docker-compose.yml 的文件,并将以下内容写入文件中:

version: '3.7'
services:
  nginx:
    image: nginx:latest
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
    ports:
      - "80:80"
    networks:
      - lnmp_net

  php:
    image: php:7.4-fpm
    networks:
      - lnmp_net

  mysql:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: rootpassword
    networks:
      - lnmp_net

networks:
  lnmp_net:
    driver: bridge

注释:

  • 设置了三个服务:Nginx、PHP 和 MySQL。
  • volumes 允许我们将本地的配置文件挂载到容器中。
  • ports 映射主机的 80 端口到容器的 80 端口。

3. 配置 Nginx

在项目目录下创建一个叫 nginx.conf 的文件,并将以下内容写入其中:

server {
    listen       80;
    server_name  myapp.local;

    location / {
        root   /var/www/html;
        index  index.php index.html index.htm;
    }

    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_pass php:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

注释:

  • 配置 Nginx 监听 80 端口并定义服务器名为 myapp.local
  • 定义 PHP 文件的处理规则。

4. 配置 PHP-FPM

这里只需要使用 PHP 的官方镜像即可,不需要特别配置。

5. 配置 MySQL

docker-compose.yml 中已经添加了 MySQL 的环境变量。注意修改 MYSQL_ROOT_PASSWORD 至你想要的密码。

6. 配置 hosts 文件

在你的本地机器上,编辑 /etc/hosts 文件(Linux 和 macOS)或 C:\Windows\System32\drivers\etc\hosts 文件(Windows),添加以下内容:

127.0.0.1   myapp.local

注释:

  • myapp.local 解析为本地 IP 地址 127.0.0.1

7. 启动 Docker 容器并验证

在项目根目录下运行以下命令来启动容器:

docker-compose up -d   # 后台启动容器

查看容器是否运行:

docker ps   # 列出所有运行中的容器

结尾

通过以上步骤,你成功构建了一个 LNMP 环境,并实现了 hosts 映射。现在你可以通过输入 ` 来访问你的 PHP 应用程序了!希望这篇文章能帮助你快速入门 Docker 和 LNMP 的结合使用。

序列图

sequenceDiagram
    participant User
    participant Docker
    User->>Docker: 创建 docker-compose.yml
    User->>Docker: 启动容器
    Docker-->>User: 返回运行状态

旅行图

journey
    title LNMP 环境构建旅程
    section 安装及配置
      安装 Docker: 5: User
      创建 docker-compose.yml: 4: User
      配置 nginx.conf: 3: User
      配置 /etc/hosts: 4: User
    section 启动及验证
      启动容器: 5: User
      访问应用: 5: User

希望你能愉快地使用这些技术,持续探索更多的开发世界!