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到DeepLab:盘点CV任务中那些‘神级’特征融合技巧与避坑指南
从YOLO到DeepLab:盘点CV任务中那些‘神级’特征融合技巧与避坑指南 在计算机视觉领域,特征融合技术就像一位隐形的调音师,默默协调着神经网络中不同层次、不同来源的信息流。当你在目标检测任务中遇到小目标识别率低的问题,或在图…...
Ext2Read:3个高效方案解决Windows读取Linux分区难题
Ext2Read:3个高效方案解决Windows读取Linux分区难题 【免费下载链接】ext2read A Windows Application to read and copy Ext2/Ext3/Ext4 (With LVM) Partitions from Windows. 项目地址: https://gitcode.com/gh_mirrors/ex/ext2read 一、痛点直击ÿ…...
Photon OS 监控与运维:7个必备工具和最佳实践
Photon OS 监控与运维:7个必备工具和最佳实践 【免费下载链接】photon Minimal Linux container host 项目地址: https://gitcode.com/gh_mirrors/phot/photon Photon OS 作为一款轻量级 Linux 容器主机,高效的监控与运维是保障其稳定运行的关键。…...
零基础玩转OpenClaw:Qwen3.5-9B镜像+可视化控制台体验
零基础玩转OpenClaw:Qwen3.5-9B镜像可视化控制台体验 1. 为什么选择OpenClawQwen3.5-9B组合 去年我在整理个人知识库时,每天要花2小时重复执行网页截图、OCR识别、内容归档的机械操作。直到发现OpenClaw这个能像人类一样操作电脑的开源智能体框架&…...
中关村论坛重磅发布十五项脑机接口成果
当前,脑机接口技术正处于从实验室走向临床应用、从技术突破迈向产业转化的关键时期。中关村论坛重磅发布十五项脑机接口创新成果,聚焦学术创新性、产品合规性、临床突破性与生态共建性四大核心维度,集中呈现我国在该领域的前沿进展。本次发布…...
基于DQN深度强化学习电力-热力-算力三维协同的数据中心智能调度优化研究(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
韩式健康板供应商筛选:企业采购决策策略深度解析
韩式健康板供应商筛选:企业采购决策6步策略,避开80%行业坑点“韩式健康板供应商筛选不是只看价格,掌握6个关键步骤才能选到靠谱伙伴”——这是行业内资深采购的共识。本文针对企业采购韩式健康板的核心痛点,从需求梳理到持续监控&…...
CVPR2025新星DehazeXL:开源8K去雾数据集与可解释归因图,高分辨率图像处理新范式
1. 高分辨率图像去雾的痛点与DehazeXL的突破 第一次处理8K航拍图像时,我盯着显存不足的报错信息愣了半天——当时用的某知名去雾模型,光是加载81928192的图片就吃掉了48GB显存。这其实是高分辨率图像处理领域的普遍困境:传统方法要么被迫降采…...
LlamaIndex中文文档全解析:从安装到实战RAG系统的保姆级指南
LlamaIndex中文文档全解析:从安装到实战RAG系统的保姆级指南 在人工智能技术快速迭代的今天,如何让大型语言模型(LLM)真正理解并处理私有数据成为开发者面临的核心挑战。LlamaIndex作为专为上下文增强设计的框架,正在改变我们构建智能应用的方…...
ICEM高效建模技巧:从快捷键到多点创建模式
1. ICEM快捷键:让你的建模效率翻倍 刚开始用ICEM建模那会儿,我总被繁琐的鼠标操作折磨得够呛。直到有天发现隔壁工位的同事建模速度比我快三倍,偷师学艺才知道——原来快捷键才是真正的生产力神器。这里分享几个我每天必用的核心快捷键组合&a…...
