插件窝 干货文章 docker lnmp怎么调用

docker lnmp怎么调用

Docker Nginx MySQL compose 429    来源:    2025-04-06

Docker LNMP环境调用指南

LNMP(Linux + Nginx + MySQL + PHP)是一种常见的Web服务器环境组合。使用Docker可以轻松搭建和管理LNMP环境。以下是调用Docker LNMP环境的详细方法:

1. 基本调用方法

1.1 使用现有LNMP Docker镜像

最简单的方法是使用现有的LNMP Docker镜像:

# 拉取LNMP镜像(以其中一个流行镜像为例)
docker pull richarvey/nginx-php-fpm

# 运行容器
docker run -d --name my_lnmp -p 80:80 -p 443:443 -p 3306:3306 -v /path/to/your/web:/var/www/html richarvey/nginx-php-fpm

1.2 使用docker-compose

更推荐的方式是使用docker-compose管理多个容器:

  1. 创建docker-compose.yml文件:
version: '3'

services:
  nginx:
    image: nginx:latest
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
      - ./sites:/etc/nginx/sites-enabled
      - ./www:/var/www/html
    depends_on:
      - php
      - mysql

  php:
    image: php:7.4-fpm
    volumes:
      - ./www:/var/www/html

  mysql:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: your_root_password
      MYSQL_DATABASE: your_database
      MYSQL_USER: your_user
      MYSQL_PASSWORD: your_password
    volumes:
      - ./mysql-data:/var/lib/mysql
  1. 启动服务:
docker-compose up -d

2. 自定义配置

2.1 Nginx配置

在项目目录下创建nginx.conf和站点配置文件:

# nginx.conf 示例
user  nginx;
worker_processes  auto;

events {
    worker_connections  1024;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}

2.2 PHP配置

可以通过创建自定义Dockerfile来扩展PHP镜像:

FROM php:7.4-fpm

RUN docker-php-ext-install pdo pdo_mysql
RUN pecl install redis && docker-php-ext-enable redis

然后在docker-compose.yml中引用:

php:
  build: .
  volumes:
    - ./www:/var/www/html

3. 常用操作命令

  • 启动服务:docker-compose up -d
  • 停止服务:docker-compose down
  • 查看日志:docker-compose logs
  • 进入容器:docker exec -it container_name bash
  • 重启单个服务:docker-compose restart service_name

4. 项目部署

将你的PHP项目文件放入www目录,Nginx会自动提供服务。确保Nginx配置正确指向你的项目入口文件。

5. 数据库连接

在PHP代码中连接MySQL时,使用以下配置: - 主机名:mysql(docker-compose中的服务名) - 用户名/密码:docker-compose.yml中设置的

$db = new PDO('mysql:host=mysql;dbname=your_database', 'your_user', 'your_password');

6. 注意事项

  1. 生产环境需要更严格的安全配置
  2. 定期备份MySQL数据卷
  3. 考虑使用.env文件管理敏感信息
  4. 根据需求调整各容器的资源限制

通过以上方法,你可以轻松调用和管理Docker LNMP环境,实现快速开发和部署。