docker中部署lnmp架构

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

docker中部署lnmp架构

  • 前言
  • 一、安装docker和docker-compose
  • 二、文件部署准备
  • 三、创建ngixn虚拟主机配置文件
  • 四、创建html文件夹
  • 五、启动容器
  • 文件结构


前言

Docker是一种轻量级的虚拟化技术,通过将应用程序及其依赖资源打包成一个镜像并运行在容器中,来实现应用的隔离和快速部署。而LNMP(Linux + Nginx + MySQL + PHP)架构是一个常见的Web应用程序架构,它将Linux作为操作系统,Nginx作为Web服务器,MySQL作为数据库,PHP作为服务器端编程语言,通过结合这些技术能够快速搭建一个高效稳定的Web应用程序。

将LNMP架构与Docker集成,可以提供以下几方面的优势:

  1. 确保应用程序的可移植性:将应用程序打包成Docker镜像后,可以在任何支持Docker容器的环境中运行,不必担心因为环境不同而导致应用程序不稳定或无法运行。

  2. 提高生产效率:Docker镜像可以被快速的创建和销毁,允许在短时间内快速部署和更新应用程序,从而大幅提高生产效率。

  3. 保障应用程序的隔离性和安全性:使用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

docker中部署lnmp架构_第1张图片

docker中部署lnmp架构_第2张图片
docker中部署lnmp架构_第3张图片

你可能感兴趣的:(docker,架构,运维)