docker部署LNMP
docker部署LNMP
nginx 1.22 172.111.0.10 docker-nginx
mysql 8.0.30 172.111.0.20 docker-mysql
php 8.1.27 172.111.0.30 docker-php
docker:单节点部署,只能在一台机器上部署,如果跨机器容器无法操作,无法通信。
做高可用只能在节点上增加同意服务的容器数量。
docker部署nginx:lnmp
[root@docker1 nginx]# ls
Dockerfile nginx-1.22.0.tar.gz wordpress-6.4.2-zh_CN.tar.gz
nginx-1.22.0 nginx.conf
[root@docker1 nginx]# vim nginx.conf
worker_processes 1;
events {worker_connections 1024;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';
include mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65;server {listen 80;server_name localhost;charset utf-8;location / {root html;index index.html index.php;}error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}location ~ \.php$ {root html;fastcgi_pass 172.111.0.30:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;include fastcgi_params;}
}
}
FROM centos:7
MAINTAINER this is nginx <lnmp>
RUN rm -rf /etc/yum.repos.d/*
ADD http://mirrors.aliyun.com/repo/Centos-7.repo /etc/yum.repos.d/Centos-7.repo
RUN yum -y install pcre-devel zlib-devel gcc gcc-c++ make
ADD nginx-1.22.0.tar.gz /usr/local/src/
RUN useradd -M -s /sbin/nologin nginx
WORKDIR /usr/local/src/nginx-1.22.0
RUN ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module && make -j 4 && make install
ENV PATH /usr/local/nginx/sbin/:$PATH
COPY nginx.conf /usr/local/nginx/conf/
ADD wordpress-6.4.2-zh_CN.tar.gz /usr/local/nginx/html/
EXPOSE 80
VOLUME ["/usr/local/nginx/html/"]
CMD ["/usr/local/nginx/sbin/nginx","-g","daemon off;"]
#执行脚本开始安装
[root@docker1 nginx]# docker build -t nginx:lnmp .
[root@docker1 nginx]# docker network create --subnet=172.111.0.0/16 --opt "com.docker.network.brige.name"="docker1" mynetwork
f68061fa2125dac69c56def834bd3b357df6462c1781d4265e8c406ca988b1fe
[root@docker1 nginx]# docker run -itd --name nginx -p 80:80 -m 512m -v /opt/nhtml:/opt/nginx --net mynetwork --ip 172.111.0.10 nginx:lnmp
bc334a58a6ee7f20ac03492dbf0d039b96808a8800dd4b41f72e2103fb2015cf
#进入容器
[root@docker1 nginx]# docker exec -it nginx bash
#安装检测端口
[root@bc334a58a6ee nginx-1.22.0]# yum -y install net-tools
[root@bc334a58a6ee nginx-1.22.0]# netstat -antp | grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1/nginx: master pro
[root@ae62a45a641a nginx-1.22.0]# cd /usr/local/nginx/html/
[root@ae62a45a641a html]# ls
50x.html index.html wordpress
[root@ae62a45a641a html]# echo 123 > index.html

docker部署MySQL:lnmp
[root@docker1 mysql]# ls Dockerfile my.conf mysql-8.0.30-el7-x86_64 mysql-8.0.30-el7-x86_64.tar.gz [root@docker1 mysql]# vim my.conf [client] port = 3306 socket=/usr/local/mysql/mysql.sock [mysqld] user = mysql basedir=/usr/local/mysql datadir=/usr/local/mysql/data port = 3306 character-set-server=utf8 pid-file = /usr/local/mysql/mysqld.pid socket=/usr/local/mysql/mysql.sock bind-address = 0.0.0.0 skip-name-resolve max_connections=2048 default-storage-engine=INNODB max_allowed_packet=16M server-id = 1 sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION [root@docker1 mysql]# vim Dockerfile FROM centos:7 MAINTAINER this is mysql <lnmp> RUN rm -rf /etc/yum.repos.d/* ADD http://mirrors.aliyun.com/repo/Centos-7.repo /etc/yum.repos.d/Centos-7.repo RUN yum -y install libaio numactl-libs pcre-devel zlib-devel gcc gcc-c++ make RUN useradd -M -s /sbin/nologin mysql ADD mysql-8.0.30-el7-x86_64.tar.gz /usr/local RUN mv /usr/local/mysql-8.0.30-el7-x86_64 /usr/local/mysql COPY my.conf /etc/my.cnf EXPOSE 3306 RUN chown -R mysql:mysql /usr/local/mysql && chown mysql:mysql /etc/my.cnf ENV PATH=/usr/local/mysql/bin/:/usr/local/mysql/lib:$PATH WORKDIR /usr/local/mysql/bin RUN ./mysqld \ --initialize-insecure \ --user=mysql \ --basedir=/usr/local/mysql \ --datadir=/usr/local/mysql/data VOLUME ["/usr/local/mysql"] ENTRYPOINT ["./mysqld"] #执行脚本开始安装 [root@docker1 mysql]# docker build -t mysql:lnmp . [root@docker1 mysql]# docker run -itd --name mysql -p 3306:3306 --privileged -v /opt/mysql1:/opt/mysql --net mynetwork --ip 172.111.0.20 mysql:lnmp c48b556646c6ab48892955a6b8eb3b6e1b2c47561d30fb37b8319c9fc08e18c0 [root@docker1 mysql]# docker exec -it mysql bash [root@c48b556646c6 bin]# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 8 Server version: 8.0.30 MySQL Community Server - GPL Copyright (c) 2000, 2022, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
docker部署php:inmp
[root@docker1 mysql]# cd /opt [root@docker1 opt]# cd php/ #拖入三个文件 [root@docker1 php]# ls [root@docker1 php]# rz -E rz waiting to receive. [root@docker1 php]# rz -E rz waiting to receive. [root@docker1 php]# rz -E rz waiting to receive. [root@docker1 php]# ls php-fpm.conf php.ini www.conf #解压php文件 root@docker1 php]# tar -xf php-8.1.27.tar.gz [root@docker1 php]# ls php-8.1.27 php-8.1.27.tar.gz #配置安装过程 [root@docker1 php]# vim Dockerfile FROM centos:7 MAINTAINER this is php <lnmp> RUN rm -rf /etc/yum.repos.d/* ADD http://mirrors.aliyun.com/repo/Centos-7.repo /etc/yum.repos.d/Centos-7.repo RUN yum -y install epel-release RUN yum -y install gcc gcc-c++ make \ gd \ libjpeg libjpeg-devel \ libpng libpng-devel \ freetype freetype-devel \ libxml2 libxml2-devel \ zlib zlib-devel \ curl curl-devel \ openssl openssl-devel \ oniguruma-devel \ sqlite-devel ADD php-8.1.27.tar.gz /usr/local/src WORKDIR /usr/local/src/php-8.1.27 RUN ./configure \ --prefix=/usr/local/php \ --with-mysql-sock=/usr/local/mysql/mysql.sock \ --with-mysqli \ --with-zlib \ --with-curl \ --with-gd \ --with-jpeg-dir \ --with-png-dir \ --with-freetype-dir \ --with-pdo-mysql \ --with-openssl \ --with-sqlite-devel \ --with-oniguruma-devel \ --enable-fpm \ --enable-mbstring \ --enable-xml \ --enable-session \ --enable-ftp \ --enable-pdo \ --enable-tokenizer \ --enable-zip && make -j 4 && make install ENV PATH /usr/local/php/bin/:/usr/loacl/php/sbin:$PATH COPY php.ini /usr/local/php/lib/ COPY php-fpm.conf /usr/local/php/etc/ COPY www.conf /usr/local/php/etc/php-fpm.d/ EXPOSE 9000 CMD ["/usr/local/php/sbin/php-fpm","-f"] [root@docker1 php]# docker run -itd --name php --net mynetwork --ip 172.111.0.30 -p 9000:9000 --volumes-from nginx --volumes-from mysql php:lnmp 980cd0abc11a1b2da2137515eb55d204307403e3b62f0e497f45252633ba3e6b [root@docker1 php]# docker exec -it php bash [root@980cd0abc11a php-8.1.27]# cd /usr/local/ [root@980cd0abc11a local]# ls bin games lib libexec nginx sbin src etc include lib64 mysql php share [root@980cd0abc11a local]# cd mysql/ [root@980cd0abc11a mysql]# ls LICENSE bin docs lib mysql.sock mysqld.pid support-files README data include man mysql.sock.lock share [root@980cd0abc11a mysql]# cd .. [root@980cd0abc11a local]# cd nginx/ [root@980cd0abc11a nginx]# ls html [root@980cd0abc11a nginx]# cd html/ [root@980cd0abc11a html]# ls 50x.html index.html wordpress #查看端口是否起 [root@980cd0abc11a html]# netstat -antp | grep 9000 tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 1/php-fpm: master p #访问宿主机ip就会出现,

1
相关文章:
docker部署LNMP
docker部署LNMP nginx 1.22 172.111.0.10 docker-nginx mysql 8.0.30 172.111.0.20 docker-mysql php 8.1.27 172.111.0.30 docker-php docker:单节点部署,只能在一台机器上部署,如果跨机器容器无法操作,无法通信。 做高可用…...
在Spring Boot应用中,如果你希望在访问应用时加上项目的名称或者一个特定的路径前缀
在Spring Boot应用中,如果你希望在访问应用时加上项目的名称或者一个特定的路径前缀 在Spring Boot应用中,如果你希望在访问应用时加上项目的名称或者一个特定的路径前缀,你可以通过配置server.servlet.context-path属性来实现。这通常在app…...
东南大学:Wi-Fi 6搭档全光以太,打造“数智东南”信息高速路
东南大学:Wi-Fi 6搭档全光以太,打造“数智东南”信息高速路 - 华为企业业务 打好ICT底座,平台和应用层面就会非常通畅了。首先,出海企业的需求既有普遍性,也有垂直性行业的特性需求。普遍性需求需要通信、沟通数据和传…...
C++:stack类(vector和list优缺点、deque)
目录 前言 数据结构 deque vector和list的优缺点 push pop top size empty 完整代码 前言 stack类就是数据结构中的栈 C数据结构:栈-CSDN博客 stack类所拥有的函数相比与string、vector和list类都少很多,这是因为栈这个数据结构是后进先出的…...
负载均衡、高可用
负载均衡 负载均衡(Load Balance):可以利用多个计算机和组合进行海量请求处理,从而获得很高的处理效率,也可以用多个计算机做备份(高可用),使得任何一个机器坏了整个系统还是能正常…...
从Retrofit支持suspend协程请求说开去
在现代Android开发中,异步请求已经成为不可或缺的一部分。传统的异步请求往往涉及大量的回调逻辑,使代码难以维护和调试。随着Kotlin协程的引入,异步编程得到了极大的简化。而作为最流行的网络请求库之一,Retrofit早在Kotlin协程的…...
深入浅出:你需要了解的用户数据报协议(UDP)
文章目录 **UDP概述****1. 无连接性****2. 尽最大努力交付****3. 面向报文****4. 多种交互通信支持****5. 较少的首部开销** **UDP报文的首部格式****详细解释每个字段** **UDP的多路分用模型****多路分用的实际应用** **检验和的计算方法****伪首部的详细内容****检验和计算步…...
C++的Magic Static
什么是“Magic Static”? C 中,函数内部的静态变量只会在第一次执行该函数时被初始化,而且这种初始化在 C11 标准之后是线程安全的。这意味着即使多个线程同时第一次调用该函数,静态变量也只会被初始化一次,并且在初始…...
vscode添加宏定义
1 起因 在用vscode看项目代码时,如果源文件中的代码块被某个宏定义给包裹住了,则在vscode的默认配置下,不会高亮显示这块被包裹住的代码,如下图中229行开始的代码被STM32F40_41xxx所控制,没有高亮显示。 由于STM32F4…...
Postman接口关联
接口关联 接口之间存在依赖关系,接口B要依赖于接口A的返回值。 例如:现在有两个接口,接口1:获取接口统一鉴权码token接口,接口2:创建标签接口。接口2里的请求参数需要依赖接口1返回的值,即需要…...
用Python制作开心消消乐游戏|附源码
制作一个完整的“开心消消乐”风格的游戏在Python中是一个相对复杂的项目,因为它涉及到图形界面、游戏逻辑、动画效果以及用户交互等多个方面。不过,我可以为你提供一个简化的版本和概念框架,帮助你理解如何开始这个项目,并提供一…...
ArcGIS10.8 安装教程
目录 一、环境及安装包准备 二、安装流程 1、解压安装包ArcGIS_108.rar 2、安装 三、汉化 四、激活 五、自定义菜单(可选) 六、打开软件按查看 七、安装过程中出现的报错 八、其他 一、环境及安装包准备 安装环境:win7 安装包下载…...
2024网络安全学习路线,最全保姆级教程,学完直接拿捏!
关键词: 网络安全入门、渗透测试学习、零基础学安全、网络安全学习路线 首先咱们聊聊,学习网络安全方向通常会有哪些问题 前排提示:文末有CSDN独家网络安全资料包! 1、打基础时间太长 学基础花费很长时间,光语言都有…...
Apache Doris 中Compaction问题分析和典型案例
说明 此文档主要说明一些常见compaction问题的排查思路和临时处理手段。这些问题包括 Compaction socre高Compaction失败compaction占用资源多Compaction core 如果问题紧急,可联系社区同学处理 如果阅读中有问题,可以反馈给社区同学。 1 compaction …...
redis面试(十七)MultiLock加锁和释放锁
MultiLock MultiLock,英语直译为多个锁。 redisson分布式锁中的MultiLock这个机制,可以将多个锁合并为一个大锁,对一个大锁进行统一的申请加锁以及释放锁 一次性锁定多个资源,再去处理一些事情,然后事后一次性释放所…...
电脑开机LOGO修改教程_BIOS启动图片替换方法
准备工具:刷BIOS神器和change logo,打包下载地址:https://download.csdn.net/download/baiseled/89374686 一.打开刷BIOS神器,点击备份BIOS,保存到桌面 二.打开change logo,1.点击load image,选…...
微前端架构的持续集成与持续部署实践
在软件开发中,持续集成(Continuous Integration, CI)和持续部署(Continuous Deployment, CD)是实现高效、自动化软件交付的关键实践。微前端架构通过将应用拆分为多个自治的子应用,带来了开发和部署上的灵活…...
【STM32 FreeRTOS】事件标志组
事件标志组简介 事件标志组:用一个比特位来表示事件是否发生 事件标志组是一组事件标志位的集合,可以简单理解为事件标志组就是一个整数。 事件标志组的特点: 它的每一位表示一个事件(高八位不算)每一位事件的含义…...
【启动centos报错】另一个程序已锁定文件的一部分,进程无法访问,打不开磁盘.
启动centos报错 另一个程序已锁定文件的一部分,进程无法访问打不开磁盘“D:\Program2\CentOS\CentOS7\CentOS7.vmdk”或它所依赖的某个快照磁盘。模块“Disk”启动失败。未能启动虚拟机。解决方法 删除.lck文件...
基于YOLOv8-pose的手部关键点检测(3)- 实现实时手部关键点检测
目录 前言 1.扩大检测框区域 2.先检测手部,后检测手部关键点 3.正面视角检测 4.侧面视角检测 5.摄像头视角检测 6.遮挡视角检测 7.结论 前言 使用YOLOv8-m对图像进行手部检测,然后扩大检测框区域,并对该区域使用YOLOv8-s-pose使用关键…...
YOLO-Master 的MoE方案分解
之前,进行论文精度。今天看下具体代码 文章目录1. OptimizedMOEImproved加载模块过程2. 路由模块 EfficientSpatialRouter3. 专家 SimpleExpert实例条件自适应MoE 剪枝 (MoEPruner)聚类加权 NMS (CW-NMS)1. OptimizedMOEImproved 同构专家:通常使用相同…...
Spring Data JPA 高级特性
Spring Data JPA 高级特性 引言 大家好,今天想和大家聊聊 Spring Data JPA 的高级特性。作为一名 Java 架构师,我深知数据访问层对于应用的重要性。 Spring Data JPA 是 Spring 生态中用于简化数据访问的优秀框架,它提供了丰富的功能和灵活…...
蓝桥杯备赛避坑指南:从校赛落选到国三逆袭的实战经验分享
蓝桥杯备赛避坑指南:从校赛落选到国三逆袭的实战经验分享 第一次参加蓝桥杯校赛时,我连最简单的编程题都没能完整写出。看着屏幕上仅完成的两道签到题和一堆未通过的测试用例,那种挫败感到现在都记忆犹新。但正是这次失败,让我后来…...
PyTorch 2.5快速部署指南:3步开启你的AI模型训练之旅
PyTorch 2.5快速部署指南:3步开启你的AI模型训练之旅 1. PyTorch 2.5环境准备 PyTorch 2.5作为当前最流行的深度学习框架之一,带来了多项性能优化和新特性。在开始之前,我们需要确保环境配置正确。 1.1 系统要求检查 操作系统:…...
MAI-UI-8B部署全攻略:开箱即用,快速体验GUI智能体强大功能
MAI-UI-8B部署全攻略:开箱即用,快速体验GUI智能体强大功能 1. 认识MAI-UI-8B:能"动手"的AI智能体 大多数AI助手只能回答问题或生成内容,而MAI-UI-8B却能做到真正意义上的"动手操作"。这是一个能够理解图形用…...
Phi-3-mini-128k-instruct与STM32开发:生成嵌入式C代码与调试逻辑
Phi-3-mini-128k-instruct与STM32开发:生成嵌入式C代码与调试逻辑 1. 引言 如果你玩过STM32,尤其是像STM32F103C8T6这种经典的“蓝色药丸”最小系统板,肯定对下面这些场景不陌生:为了点亮一个LED,翻遍数据手册&#…...
PDF-Parser-1.0智能办公:告别手动复制粘贴的PDF处理方案
PDF-Parser-1.0智能办公:告别手动复制粘贴的PDF处理方案 1. 为什么需要智能PDF解析工具 在日常办公场景中,PDF文档处理是一个高频且痛苦的工作环节。根据统计,职场人士平均每周需要处理15-20份PDF文件,包括合同、报告、发票等各…...
Suricata在CentOS7上的性能优化:如何配置网卡混杂模式与端口聚合
Suricata在CentOS7上的性能优化:网卡混杂模式与端口聚合实战指南 当企业网络流量突破千兆级别时,传统单网卡监控方案往往力不从心。我曾为某金融客户部署Suricata时,单台服务器每天要处理超过2TB的流量数据,正是通过下文介绍的网卡…...
Ice:macOS菜单栏管理终极指南,彻底告别杂乱无章
Ice:macOS菜单栏管理终极指南,彻底告别杂乱无章 【免费下载链接】Ice Powerful menu bar manager for macOS 项目地址: https://gitcode.com/GitHub_Trending/ice/Ice 想要彻底掌控macOS菜单栏,告别杂乱无章的图标堆积吗?I…...
Xilinx Video IP实战:如何将HDMI输入转换为AXI4-Stream(附仿真+上板测试)
Xilinx Video IP实战:HDMI转AXI4-Stream全流程开发指南 在FPGA视频处理系统中,将HDMI等视频输入接口转换为标准化的AXI4-Stream协议是构建复杂视频处理流水线的关键第一步。不同于简单的接口转换,这一过程涉及视频时序解析、数据位宽适配、时…...
