centos

centos lnmp如何实现容器化部署

小樊
43
2025-07-14 22:19:54
栏目: 智能运维

在CentOS上使用LNMP(Linux, Nginx, MySQL, PHP)实现容器化部署,可以借助Docker来完成。以下是一个基本的步骤指南:

1. 安装Docker

首先,确保你的CentOS系统上已经安装了Docker。如果没有安装,可以使用以下命令进行安装:

sudo yum update -y
sudo yum install -y docker
sudo systemctl start docker
sudo systemctl enable docker

2. 创建Dockerfile

为每个组件(Nginx、MySQL、PHP)创建一个Dockerfile。

Nginx Dockerfile

创建一个名为Dockerfile.nginx的文件:

FROM nginx:latest
COPY ./nginx.conf /etc/nginx/nginx.conf
COPY ./html /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

MySQL Dockerfile

创建一个名为Dockerfile.mysql的文件:

FROM mysql:5.7
ENV MYSQL_ROOT_PASSWORD=rootpassword
ENV MYSQL_DATABASE=mydatabase
EXPOSE 3306
CMD ["mysqld"]

PHP Dockerfile

创建一个名为Dockerfile.php的文件:

FROM php:fpm
COPY ./php.ini /usr/local/etc/php/conf.d/custom.ini
COPY ./app /var/www/html
EXPOSE 9000
CMD ["php-fpm"]

3. 创建Docker Compose文件

创建一个名为docker-compose.yml的文件来定义和运行多容器Docker应用程序:

version: '3'
services:
  nginx:
    build:
      context: .
      dockerfile: Dockerfile.nginx
    ports:
      - "80:80"
    depends_on:
      - php
      - mysql

  mysql:
    build:
      context: .
      dockerfile: Dockerfile.mysql
    environment:
      MYSQL_ROOT_PASSWORD: rootpassword
      MYSQL_DATABASE: mydatabase
    volumes:
      - db_data:/var/lib/mysql

  php:
    build:
      context: .
      dockerfile: Dockerfile.php
    volumes:
      - ./app:/var/www/html

volumes:
  db_data:

4. 准备配置文件和应用程序代码

确保你有以下文件:

5. 构建和启动容器

在包含docker-compose.yml文件的目录中运行以下命令来构建和启动所有容器:

docker-compose up --build -d

6. 验证部署

打开浏览器并访问http://your_server_ip,你应该能够看到你的Nginx服务器正在运行,并且能够访问你的PHP应用程序。

总结

通过以上步骤,你可以在CentOS上使用Docker容器化部署LNMP环境。每个组件都有自己的Dockerfile,并且通过Docker Compose文件来管理和协调这些容器的运行。这样可以确保环境的一致性和可移植性。

0
看了该问题的人还看了