提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
docker中部署lnmp架构
- 前言
- 一、安装docker和docker-compose
- 二、文件部署准备
- 三、创建ngixn虚拟主机配置文件
- 四、创建html文件夹
- 五、启动容器
- 文件结构
前言
Docker是一种轻量级的虚拟化技术,通过将应用程序及其依赖资源打包成一个镜像并运行在容器中,来实现应用的隔离和快速部署。而LNMP(Linux + Nginx + MySQL + PHP)架构是一个常见的Web应用程序架构,它将Linux作为操作系统,Nginx作为Web服务器,MySQL作为数据库,PHP作为服务器端编程语言,通过结合这些技术能够快速搭建一个高效稳定的Web应用程序。
将LNMP架构与Docker集成,可以提供以下几方面的优势:
-
确保应用程序的可移植性:将应用程序打包成Docker镜像后,可以在任何支持Docker容器的环境中运行,不必担心因为环境不同而导致应用程序不稳定或无法运行。
-
提高生产效率:Docker镜像可以被快速的创建和销毁,允许在短时间内快速部署和更新应用程序,从而大幅提高生产效率。
-
保障应用程序的隔离性和安全性:使用Docker容器来运行LNMP架构应用程序,可以在不同容器中隔离独立的进程和应用程序,从而提高应用程序运行的安全性和稳定性。
一、安装docker和docker-compose
vim /etc/yum.repos.d/docker.repo
[docker]
name=docker-ce
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable
gpgcheck=0
[centos]
name=extras
baseurl=https://mirrors.aliyun.com/centos/7/extras/x86_64
gpgcheck=0
yum install -y docker-ce
systemctl enable --now docker
vim /etc/sysctl.d/docker.conf
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1
sysctl --system
docker info
部署docker-compose
mv docker-compose-linux-x86_64-v2.5.0 /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
二、文件部署准备
创建文件夹 mkdir docker/lnmp
创建文件 vim docker-compose.yml
version: '1.0'
services:
mysql:
image: mysql:5.7
container_name: mysql
command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
restart: always
environment:
MYSQL_ROOT_PASSWORD: westos
MYSQL_DATABASE: sql1
MYSQL_USER: westos
MYSQL_PASSWORD: westos
ports:
- "3306:3306"
volumes:
- ${PWD}/mysql:/var/lib/mysql
php:
image: php:8.0-fpm
container_name: php
restart: always
ports:
- "9000:9000"
volumes:
- ${PWD}/html:/var/www/html
nginx:
image: nginx:latest
container_name: nginx
restart: always
ports:
- "80:80"
- "443:443"
volumes:
- ${PWD}/html:/var/www/html
- ${PWD}/nginx/conf.d:/etc/nginx/conf.d
- ${PWD}/nginx/ssl:/etc/nginx/ssl
phpmyadmin:
image: phpmyadmin/phpmyadmin
environment:
PMA_HOST: mysql
PMA_PORT: 3306
PMA_ARBITRARY: 1
ports:
- "8080:80"
restart: always
三、创建ngixn虚拟主机配置文件
在新建的文件夹中创建一个名为“nginx”文件夹,再新建一个“conf.d”文件夹,在该文件夹中创建一个名为“default.conf”的文件,并添加以下内容:
server {
listen 80;
listen [::]:80;
server_name www.westos.org;
root /var/www/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location /phpmyadmin {
allow 192.168.0.0/16;
deny all;
alias /usr/share/phpmyadmin/;
index index.php;
try_files $uri $uri/ =404;
location ~ \.php$ {
fastcgi_param MYSQL_HOST mysql;
fastcgi_pass php:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /usr/share/phpmyadmin$fastcgi_script_name;
fastcgi_param PHP_VALUE "upload_max_filesize=128M \n post_max_size=128M";
}
}
location ~ \.php$ {
fastcgi_pass php:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /\.ht {
deny all;
}
}
四、创建html文件夹
在新建的文件夹中创建一个名为“html”的文件夹,该文件夹下可以放置你自己的网站文件
五、启动容器
运行yml文件
在命令行中进入到yml文件所在的目录中,输入以下命令启动容器:
docker-compose up -d
等待容器启动完成,即可在浏览器中输入你的域名访问网站,并使用“your_domain_name/phpmyadmin”访问phpMyAdmin进行数据库管理。
在windows中可以使用IP进行访问。
文件结构
.
├── docker-compose.yml
├── html
│ ├── index.html
│ └── index.php
├── mysql
│ ├── mysql
└── nginx
├── conf.d
└── default.conf