在CentOS上使用LNMP(Linux, Nginx, MySQL, PHP)實現容器化部署,可以借助Docker來完成。以下是一個基本的步驟指南:
首先,確保你的CentOS系統上已經安裝了Docker。如果沒有安裝,可以使用以下命令進行安裝:
sudo yum update -y
sudo yum install -y docker
sudo systemctl start docker
sudo systemctl enable docker
為每個組件(Nginx、MySQL、PHP)創建一個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;"]
創建一個名為Dockerfile.mysql
的文件:
FROM mysql:5.7
ENV MYSQL_ROOT_PASSWORD=rootpassword
ENV MYSQL_DATABASE=mydatabase
EXPOSE 3306
CMD ["mysqld"]
創建一個名為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"]
創建一個名為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:
確保你有以下文件:
nginx.conf
:Nginx配置文件。php.ini
:PHP配置文件。html
目錄:包含靜態HTML文件。app
目錄:包含PHP應用程序代碼。在包含docker-compose.yml
文件的目錄中運行以下命令來構建和啟動所有容器:
docker-compose up --build -d
打開瀏覽器并訪問http://your_server_ip
,你應該能夠看到你的Nginx服務器正在運行,并且能夠訪問你的PHP應用程序。
通過以上步驟,你可以在CentOS上使用Docker容器化部署LNMP環境。每個組件都有自己的Dockerfile,并且通過Docker Compose文件來管理和協調這些容器的運行。這樣可以確保環境的一致性和可移植性。