Linux6.13 Docker LNMP项目搭建

文章目录

  • 计算机系统
    • 5G云计算
      • 第四章 LINUX Docker LNMP项目搭建
        • 一、项目环境
          • 1.环境描述
          • 2.容器ip地址规划
          • 3.任务需求
        • 二、部署过程
          • 1.部署构建 nginx 镜像
          • 2.部署构建 mysql 镜像
          • 3.部署构建 php 镜像
          • 4.验证测试

计算机系统

5G云计算

第四章 LINUX Docker LNMP项目搭建

一、项目环境

公司在实际的生产环境中,需要使用Docker 技术在一台主机上创建LNMP服务并运行Wordpress网站平台。然后对此服务进行相关的性能调优和管理工作

1.环境描述
容器宿主机操作系统ip地址主要软件
DockerCentOS 7.3 x86_64192.168.58.60Docker 19.03
2.容器ip地址规划
宿主机        ip地址:192.168.58.60
nginx容器   ip地址:172.18.0.10
mysql容器  ip地址:172.18.0.20
php容器     ip地址:172.18.0.30

在这里插入图片描述

3.任务需求

1)使用Docker构建LNMP环境并运行Wordpress网站平台

2)限制Nginx容器最多使用500Mb的内存和1G的Swap

3)限制Mysql容器写 /dev/sda 的速率为 10 MB/s

4)将所有容器进行快照,然后将Docker镜像打包成tar包备份到本地

二、部署过程

###前提本地已经安装docker,配置lnmp的文件目录
cd /opt/
mkdir mylnmp
cd /opt/mylnmp/
mkdir nginx mysql php###部署一个有所有软件依赖包的镜像,以便进行分阶段构建镜像
cd /opt/
vim Dockerfile
FROM centos:7                    ###从公有仓库pull一个centos:7的镜像
COPY qinghua-yum.sh /opt/        ###上传修改yum源的脚本
RUN chmod +x /opt/qinghua-yum.sh && /opt/qinghua-yum.sh && \
yum -y install pcre-devel zlib-devel openssl-devel \
gcc gcc-c++ make ncurses ncurses-devel bison cmake gd \
libjpeg-devel \
libpng-devel \
freetype-devel \
libxml2-devel \
zlib-devel \
curl-devel \
openssl-develdocker build -t centos7:mylnmpdocker imagesdocker network create --subnet=172.18.0.0/16  --opt "com.docker.network.bridge.name"="docker1"  mylnmpdocker network ls

在这里插入图片描述
在这里插入图片描述
请添加图片描述

1.部署构建 nginx 镜像
###nginx目录下已上传nginx安装包、论坛安装包、nginx配置文件
cd /opt/mylnmp/nginx/
ls###部署 nginx 的 Dockerfile
cd /opt/mylnmp/nginx/
vim Dockerfile
FROM centos7:mylnmp
ADD nginx-1.24.0.tar.gz /usr/local/
RUN useradd -M -s /sbin/nologin nginx && \
cd /usr/local/nginx-1.24.0 && \
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module && make && make installCOPY nginx.conf /usr/local/nginx/conf/nginx.confFROM centos:7
COPY --from=0 /usr/local/nginx/  /usr/local/nginx/
RUN useradd -M -s /sbin/nologin nginx
EXPOSE 80
#EXPOSE 443CMD ["/usr/local/nginx/sbin/nginx", "-g", "daemon off;"]docker build -t nginx:lnmpdocker imagesdocker run -d --name nginx --network=myLnmp --ip=172.18.0.10 -p 80:80 -v /opt/mylnmp/nginx/html/:/usr/local/nginx/html/ -m 500m - -memory-swap=1.5g centos7:myLnmpdocker ps -a

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.部署构建 mysql 镜像
###mysql目录下已上传mysql安装包、mysql配置文件
cd /opt/mylnmp/mysql/
ls###部署 mysql 的 Dockerfile
cd /opt/mylnmp/mysql/
vim Dockerfile
FROM centos7:mylnmp
ADD mysql-boost-5.7.41.tar.gz /opt/
RUN cd /opt/mysql-5.7.41/ && \
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8  \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1 && \
make -j4 && make installFROM centos:7
COPY --from=0 /usr/local/mysql/ /usr/local/mysql/
COPY my.cnf /etc/my.cnf
ENV PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH
RUN useradd -M -s /sbin/nologin mysql && \
chown -R mysql:mysql /usr/local/mysql/ && \
chown mysql:mysql /etc/my.cnf && \
/usr/local/mysql/bin/mysqld \
--initialize-insecure \
--user=mysgl \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
EXPOSE 3306
CMD ["/usr/local/mysql/bin/mysqld"]docker build -t mysql:lnmpdocker imagesdocker run -d --name mysql --privileged --network mylnmp --ip 172.18.0.20 -v /usr/local/mysql --device-write-bps /dev/sda:10mb mysql:lnmpdocker ps -adocker exec -it 5066206ee1b6 bashmysqladmin -u root password "123"mysql -u root -p123
CREATE DATABASE wordpress;
GRANT all ON wordpress.* TO 'admin'@'%' IDENTIFIED BY '123';
flush privileges;
exitexit

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.部署构建 php 镜像
###mysql目录下已上传php安装包、php配置文件
cd /opt/mylnmp/php/
ls###部署 php 的 Dockerfile
cd /opt/mylnmp/php/
vim Dockerfile
FROM centos7:mylnmp
ADD php-7.1.10.tar.bz2 /opt
RUN cd /opt/php-7.1.10 && \
./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-openssl \
--enable-fpm \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zip && make -j 2 && make install
COPY php.ini /usr/local/php/lib/php.ini
COPY php-fpm.conf /usr/local/php/etc/php-fpm.conf
COPY www.conf /usr/local/php/etc/php-fpm.d/www.confFROM centos:7
COPY --from=0 /usr/local/php /usr/local/php
RUN useradd -M -s /sbin/nologin php && yum -y install gd \
libjpeg-devel \
libpng-devel \
freetype-devel \
libxml2-devel \
zlib-devel \
curl-devel \
openssl-devel
EXPOSE 9000
CMD ["/usr/local/php/sbin/php-fpm", "-F"]docker build -t php:lnmpdocker imagesdocker run --name php -d -p 9000:9000 --network mylnmp --ip 172.18.0.30 --volumes-from nginx --volumes-from mysql php:lnmpdocker ps -adocker exec -it 850d14f706b7 bash
ls /usr/local
ls /usr/local/nginx/html
ls /usr/local/mysql
exit

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.验证测试
http://192.168.58.60/index.html
http://192.168.58.60/index.php
http://192.168.58.60/wordpress/index.php

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

MySQL 索引的优缺点及索引注意事项

MySQL索引是数据库中用于加快数据检索速度的一种数据结构。它在数据库表中的列上创建一个索引,以便数据库可以更快地查找和访问数据。 索引的优缺点 优点: 快速检索:索引可以大大减少数据库查询的时间,特别是在大型表中。通过使…

sqlite3 插入数据

文章目录 需求,操作1.进入sqlite终端2.打开数据库3.执行插入语句。4.查看是否成功 最近有项目在用sqlite3,这个嵌入式数据库,不是很熟练,连个插入数据的语句都得百度哈哈。 记录下,加深记忆,给同样小白的人…

第54步 深度学习图像识别:MLP-Mixer建模(Pytorch)

基于WIN10的64位系统演示 一、写在前面 (1)MLP-Mixer MLP-Mixer(Multilayer Perceptron Mixer)是Google在2021年提出的一种新型的视觉模型结构。它的主要特点是完全使用多层感知机(MLP)来处理图像&#…

Element-UI下拉多选框回显

1、v-model绑定下拉框 <el-form-item label"项目成员" prop"members"><el-select v-model"form.members" placeholder"请选择项目成员" multiple clearable:style"{width: 100%}" change"userNameSelect"…

单行多行文本溢出显示省略号

在CSS中&#xff0c;你可以使用text-overflow属性来实现文本溢出显示省略号。同时&#xff0c;你还需要结合white-space和overflow属性来控制文本的换行和溢出隐藏。下面分别介绍单行和多行文本溢出显示省略号的方法&#xff1a; 单行文本溢出显示省略号&#xff1a; 对于单行…

【CSS】box-shadow 属性

box-shadow 是 CSS 属性&#xff0c;用于为元素添加一个阴影效果&#xff0c;使元素看起来浮起或有层次感。 该属性允许设置一个或多个阴影效果&#xff0c;其语法如下&#xff1a; box-shadow: h-shadow v-shadow blur spread color inset;h-shadow&#xff1a;水平阴影的位…

3dsmax制作一个小人

文章目录 步骤起阶五官手臂短袖添加头发、头饰BodyPaint软件贴图导入到3dsmax 渲染 步骤 起阶 五官 手臂 短袖 添加头发、头饰 BodyPaint软件贴图 寻找网络贴图&#xff0c;用PS切割&#xff0c;用BodyPaint恢复纹理 导入到3dsmax 渲染

【三维点云处理】顶点、面片、邻接矩阵、邻接距离矩阵以及稀疏存储概念

文章目录 vts和faces基础知识vertices-节点&#xff08;3是点的三维坐标&#xff09;faces-面片&#xff08;3是构成三角形面片的3个点&#xff09; 邻接矩阵邻接距离矩阵&#xff08;NN500&#xff09;稀疏矩阵 vts和faces基础知识 vertices-节点&#xff08;3是点的三维坐标…

[ubuntu][C++][qt]qt配置pcl并测试

测试环境&#xff1a; qt5.12.9 ubuntu16.04 pcl为系统apt默认库 代码&#xff1a; #include <iostream> #include <vector> #include <ctime> #include <pcl/point_cloud.h> #include <pcl/octree/octree.h> #include <boost/thread/th…

Rust vs Go:常用语法对比(二)

21. Swap values 交换变量a和b的值 a, b b, a package mainimport "fmt"func main() { a : 3 b : 10 a, b b, a fmt.Println(a) fmt.Println(b)} 103 fn main() { let a 3; let b 10; let (a, b) (b, a); println!("a: {a}, b: {b}", aa,…

【【51单片机LED呼吸灯】】

51单片机LED呼吸灯 心灵手巧呼吸灯&#xff0c;学会就能上大分 main.c #include <REGX52.H>sbit LEDP2^0; void Delay(unsigned int i) {while(i--);}void main() {unsigned char Time,i;while(1){for(Time0;Time<100;Time){for(i0;i<20;i){LED0;Delay(Time);LE…

Langchain 的 Custom example selector

Langchain 的 Custom example selector 0. ExampleSelector1. 实现自定义示例选择器​2. 使用自定义示例选择器​ 在本教程中&#xff0c;我们将创建一个自定义示例选择器&#xff0c;用于从给定的示例列表中选择每个备用示例。 0. ExampleSelector ExampleSelector 必须实现…

设计模式大白话——观察者模式

文章目录 一、概述二、示例三、模式定义四、其他 一、概述 ​ 与其叫他观察者模式&#xff0c;我更愿意叫他叫 订阅-发布模式 &#xff0c;这种模式在我们生活中非常常见&#xff0c;比如&#xff1a;追番了某个电视剧&#xff0c;当电视剧有更新的时候会第一时间通知你。当你…

Fuzz测试:提升自动驾驶安全性

目录 什么是Fuzz测试&#xff1f; 自动驾驶的潜在风险 Fuzz测试&#xff1a;自动驾驶和车联网 Fuzz测试方法有以下几种&#xff1a; 资料获取方法 纵观近百年来汽车制造业的发展历程&#xff0c;产业跨进的每一步背后都有着技术创新作为支撑。汽车技术创新对世界经济、社会…

数学建模学习(3):综合评价类问题整体解析及分析步骤

一、评价类算法的简介 对物体进行评价&#xff0c;用具体的分值评价它们的优劣 选这两人其中之一当男朋友&#xff0c;你会选谁&#xff1f; 不同维度的权重会产生不同的结果 所以找到每个维度的权重是最核心的问题 0.25 二、评价前的数据处理 供应商ID 可靠性 指标2 指…

基于Android Studio编辑器上开发的一款看点新闻App

完整资料进入【数字空间】查看——baidu搜索"writebug" 1 系统需求分析 1.1 引言 1.1.1 开发目的 看点新闻App的开发是为了实时查看最新消息以了解社会动态&#xff0c;增长知识&#xff0c;增广见闻&#xff0c;顺便娱乐一下内心世界来放松自己。 1.1.2 开发背景 …

阿里云函数计算签名认证(iOS实现细节备注)

1、使用第三方库 AFNetworking进行网络请求。 2、阿里云函数计算签名认证文档 3、文档中添加 CanonicalizedFCHeaders 可以不用添加&#xff0c;CanonicalizedResource如何没有设置Path&#xff0c;在末尾加入“/”就可以了。 4、主要还是 hmac-sha256 签名认证&#xff0c;在实…

【Spring Boot Admin】使用(整合Spring Security服务,添加鉴权)

Spring Boot Admin 监控平台 背景&#xff1a;Spring Boot Admin 监控平台不添加鉴权就直接访问的话&#xff0c;是非常不安全的。所以在生产环境中使用时&#xff0c;需要添加鉴权&#xff0c;只有通过鉴权后才能监控客户端服务。本文整合Spring Security进行实现。 pom依赖 …

Vue第四篇:html和js基础知识查漏补缺

1、a标签 定义超链接&#xff0c;用于从一个页面链接到另一个页面 target属性&#xff1a;打开目标URL的方式&#xff0c;_top为再当前窗口打开&#xff0c;_blank为新窗口打开 2、span标签 对文档中的行内元素进行组合&#xff0c;它提供了一种将文本的一部分或者文档的一部分…

Jmeter(二十三):快速生成测试报告

一、jmeter配置 首先要保证jmeter命令是ok的,如果你在cmd中输入jmeter -v,有出现如下截图所示的信息,那就说明jmeter环境ok; 二、jmeter执行结合命令 生成HTML测试报告 1.完成脚本的调试、参数化、断言等操作。然后在聚合报告中指定日志文件存储路径,路径中最好不要包含有…