一、搭建LNMP

基础配置

1、制作Nginx镜像

制作dockerfile

vim dockerfileFROM centos:7
RUN rm -rf /etc/yum.repos.d/*
RUN curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
RUN yum clean all
RUN yum makecache
RUN yum -y install zlib-devel pcre-devel gcc make openssl-devel
ADD nginx-1.19.5.tar.gz /opt
WORKDIR /opt/nginx-1.19.5
RUN ./configure --prefix=/usr/local/nginx && make && make install
ADD nginx.conf /usr/local/nginx/conf/nginx.conf
EXPOSE 80
EXPOSE 443
ADD run.sh /run.sh
RUN chmod +x /run.sh
CMD ["/run.sh"]

编辑nginx配置文件

vim nginx.conf#user  nobody;
worker_processes  1;#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;#pid        logs/nginx.pid;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '#                  '$status $body_bytes_sent "$http_referer" '#                  '"$http_user_agent" "$http_x_forwarded_for"';#access_log  logs/access.log  main;sendfile        on;#tcp_nopush     on;#keepalive_timeout  0;keepalive_timeout  65;#gzip  on;server {listen       80;server_name  localhost;#charset koi8-r;#access_log  logs/host.access.log  main;location / {root   /web;index  index.html index.htm index.php;}#error_page  404              /404.html;# redirect server error pages to the static page /50x.html#error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}# proxy the PHP scripts to Apache listening on 127.0.0.1:80##location ~ \.php$ {#    proxy_pass   http://127.0.0.1;#}# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000#location ~ \.php$ {root           /web;fastcgi_pass   php01:9000;fastcgi_index  index.php;#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;include        fastcgi.conf;}# deny access to .htaccess files, if Apache's document root# concurs with nginx's one##location ~ /\.ht {#    deny  all;#}}# another virtual host using mix of IP-, name-, and port-based configuration##server {#    listen       8000;#    listen       somename:8080;#    server_name  somename  alias  another.alias;#    location / {#        root   html;#        index  index.html index.htm;#    }#}# HTTPS server##server {#    listen       443 ssl;#    server_name  localhost;#    ssl_certificate      cert.pem;#    ssl_certificate_key  cert.key;#    ssl_session_cache    shared:SSL:1m;#    ssl_session_timeout  5m;#    ssl_ciphers  HIGH:!aNULL:!MD5;#    ssl_prefer_server_ciphers  on;#    location / {#        root   html;#        index  index.html index.htm;#    }#}}
daemon off;

编辑容器前台运行脚本

vim run.sh
#!/bin/bash
/usr/local/nginx/sbin/nginx

创建镜像

docker build -t mynginx .

查看

docker images

2、制作PHP镜像

制作dockerfile

vim dockerfileFROM centos:7
MAINTAINER jacker
RUN rm -rf /etc/yum.repos.d/*
RUN curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
RUN curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
RUN yum cleanall
RUN yum makecache
RUN yum install -y wget net-tools php php-fpm php-common php-devel php-mysql
RUN sed -i 's/127.0.0.1/0.0.0.0/g' /etc/php-fpm.d/www.conf
RUN sed -i 's/listen.allowed_clients/;listen.allowed_clients/g' /etc/php-fpm.d/www.conf
RUN sed -i 's/;default_charset/default_charset/g' /etc/php.ini
EXPOSE 9000
CMD ["php-fpm"]

创建PHP镜像

docker build -t myphp .

3、制作MySQL镜像

制作dockerfile

vim dockerfileFROM centos:7
RUN rm -rf /etc/yum.repos.d/*
RUN curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
RUN yum clean all
RUN yum makecache
RUN yum -y install mariadb mariadb-server
RUN chown -R mysql:mysql /var/lib/mysql
ADD run.sh /run.sh
RUN chmod +x /run.sh
RUN /run.sh
EXPOSE 3306
CMD ["mysql_safe"]

编辑mysql配置文件

vim my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

编辑容器前台运行脚本

vim run.sh
#!/bin/bash
mysql_install_db --user=mysql
sleep=3
mysqld_safe &
sleep=3
mysqladmin -u "root" password "123456"
mysql -uroot -p123456 -e "grant all privileges on *.* to 'root'@'%' identified by '123456';"
mysql -uroot -p123456 -e "grant all privileges on *.* to 'root'@'localhost' identified by '123456';"
mysql -uroot -p123456 -e "flush privileges;"

创建mysql镜像

docker build -t my_mysql .

4、启动容器

myphp

docker run -id --net=my_net -v /web:/web --name php01 myphp

mynginx

docker run -id --net=my_net -v /web:/web -v /opt/nginx/nginx.conf:/usr/local/nginx/conf/nginx.conf -p 80:80 --name nginx01 mynginx

my_mysql

docker run -p 3306:3306 --name mysql01 -v /opt/mysql/my.cnf:/etc/my.cnf --net=my_net -d my_mysql

查看

docker ps -a

5、测试一:

cd /webvim aaa.php
###编辑内容###
<?php
phpinfo();
?>vim bbb.php
###编辑内容###
<?php
$link=mysqli_connect('mysql01','root','123456');
if($link) echo "test OK";
mysqli_close($link);
?>

6、测试二:

cd /web
rm -rf ./*
cp -r wordpress/* /web/
chmod -R 777 /web/
docker exec -it mysql01 /bin/bash
mysql -uroot -p123456
create database wordpress;docker ps -a

7、制作tomcat镜像

制作dockerfile文件

vim dockerfileFROM centos:7
ADD apache-tomcat-8.5.16.tar.gz /usr/local/
ADD jdk-8u91-linux-x64.tar.gz /usr/local/
RUN mv /usr/local/apache-tomcat-8.5.16 /usr/local/tomcat
RUN mv /usr/local/jdk1.8.0_91 /usr/local/javaENV JAVA_HOME /usr/local/java
ENV JAVA_BIN /usr/local/java/bin
ENV JRE_HOME /usr/local/java/jre
ENV PARH $PATH:/usr/local/java/bin:/usr/local/java/jre/bin
ENV CLASSPATH $CLASSPATH:/usr/local/java/lib:/usrr/local/java/jre/libADD run.sh /run.sh
RUN chmod +x /run.sh
CMD ["/run.sh"]

修改内核参数

echo "vm.max_map_count=655360" >> /etc/sysctl.conf
sysctl -p

编辑容器前台运行脚本

vim run.sh
#!/bin/bash
export JAVA_OPTS ="-Xms2048m -Xmx4096m"
ulimit -n 655360
/usr/local/tomcat/bin/startup.sh
tailf /usr/local/tomcat/logs/catalina.out

创建镜像

docker build -t mytomcat .

创建容器

docker run -itd -p 12345:8080 --name tomcat01 mytomcat

访问测试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/913804.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/913804.shtml
英文地址,请注明出处:http://en.pswp.cn/news/913804.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python之--基本知识

基本输出语法结构: print(输出内容)print()函数完整的语法格出: print (value,...,sep,end\n,fileNone)只有字符串可以用连接基本输入语法结构: xinput(提示文字’)注意事项: 无论输入的数据是什么 x 的数据类型都是字符串类型示例&#xff1a;name input("Enter your na…

VS CodeC51 单片机开发环境搭建

文章目录前言1.安装插件2.创建EIDE项目&#xff08;51单片机&#xff09;3.配置工具链&#xff08;第一次使用需要配置&#xff09;4.编译与下载5.项目文件简介与串口调试工具6.推荐插件7.打包模板与导出模板8.51单片机串口无法识别问题前言 需要安装keil c51版本需要配置好C/…

国密算法(SM2/SM3/SM4)

文章目录国密算法&#xff08;SM2/SM3/SM4&#xff09;详解&#xff1a;从性能对比到Java手机号安全处理实战一、 国密核心算法简介二、 性能深度对比三、 Java实战&#xff1a;手机号的安全处理方案一&#xff1a;使用SM3哈希存储&#xff08;推荐用于验证场景&#xff09;方案…

从前端转go开发的学习路线

从前端开发转向 Go&#xff08;Golang&#xff09;后端开发&#xff0c;是一个非常可行也很实用的方向&#xff0c;特别是在做 高性能微服务、分布式系统、云原生&#xff08;如Kubernetes&#xff09; 等方面。以下是一份适合你&#xff08;有多年开发经验的前端开发者&#x…

node或浏览器上传文件到阿里云OSS

阿里云配置 进入阿里云OSS Bucket 列表的某个 Bucket 仓库下&#xff0c;点击访问控制 RAM 创建用户 勾上 创建 AccessKey ID 和 AccessKey Secret 复制 AccessKey 信息 用文档保存 创建角色 选择云账号 复制 ARN 用文档保存&#xff0c;然后 新增权限 搜索 oss 选择 AliyunOSS…

26考研物理复试面试常见问答问题汇总,物理专业保研推免夏令营面试问题汇总,物理本科知识专业面试最全攻略!

还在为物理考研复试面试发愁&#xff1f;还在为物理招聘的专业面试抓狂&#xff1f;还在为即将到来的物理夏令营面试不知从何下手、翻遍了厚厚的教材却抓不住重点&#xff1f;别慌&#xff0c;接下来我会从「考研的物理复试经历」「物理面试攻略」「物理面试基础问答题汇总很全…

(5)机器学习小白入门 YOLOv:数据需求与图像不足应对策略

(1)机器学习小白入门YOLOv &#xff1a;从概念到实践 (2)机器学习小白入门 YOLOv&#xff1a;从模块优化到工程部署 (3)机器学习小白入门 YOLOv&#xff1a; 解锁图片分类新技能 (4)机器学习小白入门YOLOv &#xff1a;图片标注实操手册 (5)机器学习小白入门 YOLOv&#xff1a;…

百年制造名企,三菱重工引领“智”造新范式

日前&#xff0c;由深圳软件协会指导、法大大和信息侠联合出品的《制造行业合同数智化升级白皮书》&#xff08;以下简称“白皮书”&#xff09;正式发布&#xff0c;并首次提出 “电子签法律AI” 双轮驱动模型。在制造行业面临供应链协同、合规风控及全球化出海等多重挑战的当…

【学习笔记】计算机操作系统(七)—— 文件管理

第七章 文件管理 文章目录第七章 文件管理7.1 文件和文件系统7.1.1 数据项、记录和文件7.1.2 文件名和类型7.1.3 文件系统的层次结构7.1.4 文件操作7.2 文件的逻辑结构7.2.1 文件逻辑结构的类型7.2.2 顺序文件(Sequential File)7.2.3 记录寻址7.2.4 索引文件(Index File)7.2.5 …

基于PyQt5与深度学习的可视化水果识别系统(集成CNN, MobileNetV2, VGG16)

一、项目概述 大家好&#xff01;今天我将分享一个我近期完成的深度学习项目——一个功能强大的、带图形化界面&#xff08;GUI&#xff09;的水果识别系统。该系统不仅能识别静态图片中的水果&#xff0c;还集成了模型训练、评估、数据增强等功能于一体&#xff0c;为深度学习…

k8s-服务发布基础

目录 Service的定义 核心定义 Service 的类型 关键组件与机制 工作流程示例 高级特性 Service工作原理 核心工作原理 标签选择器&#xff08;Label Selector&#xff09; Endpoints 对象 网络代理与负载均衡&#xff08;kube-proxy&#xff09; userspace 模式&#…

洛谷P1514 [NOIP 2010 提高组] 引水入城

洛谷P1514 [NOIP 2010 提高组] 引水入城 洛谷题目传送门 题目背景 NOIP2010 提高组 T4 题目描述 在一个遥远的国度&#xff0c;一侧是风景秀美的湖泊&#xff0c;另一侧则是漫无边际的沙漠。该国的行政区划十分特殊&#xff0c;刚好构成一个 NNN 行 MMM 列的矩形&#xff…

【unity小技巧】国内Unity6下载安装和一些Unity6新功能使用介绍

文章目录前言一、安装1、国外下载2、国内下载二、常用的新功能变化1、官方推荐使用inputsystem进行输入控制2、修复了InputSystem命名错误导致listen被遮挡的bug3、自带去除unity启动画面logo功能4、unity官方的behavior行为树插件5、linearVelocity代替过时的velocity方法6、随…

Rust 中字符串类型区别解析

在 Rust 中&#xff0c;"hello" 和 String::from("hello") 都表示字符串&#xff0c;但它们在内存表示、所有权和可变性上有本质区别&#xff1a;1. 类型与内存表示"hello" (字符串字面量)&#xff1a;类型为 &str&#xff08;字符串切片引用…

springMVC05-异常处理器

在 SpringMVC 中&#xff0c;异常处理是一个非常重要的功能&#xff0c;它可以让你优雅地处理程序抛出的各种异常&#xff0c;向用户展示友好的提示&#xff0c;而不是显示一堆报错信息&#xff08;如 500 页面&#xff09;。一、SpringMVC的异常处理器返回的是ModelAndView&am…

安装 Elasticsearch IK 分词器

安装 Elasticsearch IK 分词器&#xff08;手动 .zip/.zip 安装&#xff09; IK 分词器&#xff08;IK Analysis&#xff09;是 Elasticsearch 最常用的中文分词插件&#xff0c;支持 细粒度分词&#xff08;ik_max_word&#xff09; 和 智能切分&#xff08;ik_smart&#xf…

数据库系统原理实验1:创建数据库、数据表及单表查询

一、实验目的1&#xff0e;掌握在SQL Server中使用对象资源管理器和SQL命令创建数据库与修改数据库的方法。2&#xff0e;掌握在SQL Server中使用对象资源管理器或者SQL命令创建数据表和修改数据表的方法&#xff08;以SQL命令为重点&#xff09;。3&#xff0e;掌握无条件查询…

【STM32】ADC模数转换基本原理(提供完整实例代码)

这篇文章是嵌入式中我通过大量资料 整合成了一份 系统完整、层次清晰的 ADC 模数转换原理解析 文档。 这里系统地梳理了 STM32F1 系列 ADC 模数转换的核心资料&#xff0c;包括&#xff1a; 1.原理 特性 2.通道配置 3.模式选择&#xff08;单次/连续/扫描&#xff09; 4.关键寄…

图神经网络 gnn 应用到道路网络拓扑结构与交通碳排放相关性。,拓扑指标量化、时空关联模型及演化机制分析

针对您提出的“道路网络拓扑结构与交通碳排放相关框架&#xff0c;以下结合研究目标、数据与方法进行系统性深化设计&#xff0c;重点强化拓扑指标量化、时空关联模型及演化机制分析&#xff1a;一、核心研究问题深化 静态关联&#xff1a;不同拓扑结构&#xff08;方格网/环射…

7.6 优先队列| dijkstra | hash | rust

lc1337pair存入&#xff0c;lambda sort后取出&#xff0c;最开始想用hash&#xff0c;写一半感觉写复杂了class Solution {public:vector<int> kWeakestRows(vector<vector<int>>& mat, int k) {int m mat.size();int n mat[0].size();vector<pair…