综合实战(volume and Compose)
"让我,重获新生~"
MySQL 灾难恢复
熟练掌握挂载卷的使用,将Mysql的业务数据存储在 外部。
实战思想:
使用 MySQL 5.7 的镜像创建容器并创建一个普通数据卷 "mysql-data"用来保存容器中产生的数据。我们需要容器连接到Mysql服务,并且创建数据库test,并在该数据库中创建一个表来插入一些简单的数据信息。
准备镜像:
docker pull mysql:5.7
创建容器:
注:-e 选项通过参数 MYSQL_ROOT_PASSWORD 来传递 MySQL 密码
docker container run --name mysql -itd -e MYSQL_ROOT_PASSWORD=wgzzs@123 -v/data/var/mysqld/:/var/lib/mysql mysql:5.7

连接 MySQL 的 shell, 创建数据库:
接下来就是建表和插入数据的过程,这里不细讲:
在宿主机中查看 volume:
可以看到容器中 MySQL 创建的数据库和表数据以及持久化到宿主机挂载的目录下了。
突然,有一天咱们机器的系统资源吃紧,变得缓慢。一个哥们脑子发抽,将Mysql服务停掉并删除了:
不过好在,我们将容器内MySQL的数据做了绑定卷,它的数据还在宿主机上。我们现在要做的就是进行数据恢复。

成功登录Mysql数据后,我们进入test库中,查询表信息:
数据仍然是存在的!
Docker Compose 部署自定义服务
我们编写一个简单的案例: nginx 反向代理到我们的一个 springboot 微服务,微服务访问我们的 msyql 数据库查询用户信息。
springboot简介
Spring Boot是一个开源的Java框架,它使得开发人员能够快速搭建和运行基于Spring的应用程序。
特征:
🥏 SpringBoot Starter:他将常用的依赖分组进行了整合,将其合并到一个依赖中,这样就可以一次性添加到项目的Maven或Gradle构建中。
🥏 使编码变得简单,提供了大量的注解,极大的提高了工作效率。
🥏 自动配置:SpringBoot的自动配置特性利用了Spring对条件化配置的支持,合理地推测应用所需的bean并自动化配置他们。
🥏使部署变得简单,SpringBoot内置了三种Servlet容器,Tomcat,Jetty,undertow. 出自这里
创建一个 springboot 应用,配置 maven 项目:
有一些Idea中没有集成Spring initializr,可以访问官网。登录该网站,填写项目信息,选择依赖后,点击 Generate Project。
解压生成的压缩包,使用Idea打开项目文件,点击右侧Mavn菜单栏,双击clean清理没问题,工程成功。
点击package,我们发现也能正常打包:
最终我们是要去访问机器上的Mysql,所以我们就要开始配置它的用户名和密码。
配置Mysql的依赖驱动:
在属性文件中,配置数据源(Mysql用户名和密码):
编写一个简单的user控制类:
回到main类后,点击启动我们的服务在8080号端口,该Web能够在本地运行。
编写yml文件:
version: "3.8"
services:web:image: 1.24.0ports: - 8080:80networks: - mywebvolumes: - /data/nginx/conf.d:/etc/nginx/conf.d # 这里我们会更改配置文件的 启用反向代理depends_on: mysys: condition: service_startedmysys:image: java:8depends_on: mysql: condition: service_healthycommand: java -jar /app/demojdbc-0.0.1-SNAPSHOT.jar # 编译项目volumes: - /data/app/:/app/networks: - mywebmysql:image: mysql:5.7volumes:- /data/mysql/varlib/:/var/lib/mysql- /data/mysql/init/:/docker-entrypoint-initdb.d/environment: MYSQL_ROOT_PASSWORD: wgzzs@123healthcheck: test: mysql --user=root --password='root' -e "SELECT 1;"interval: 10stimeout: 5sretries: 10networks: - mywebnetworks: myweb:
我们需要通过将访问nginx服务的流量,转打给正在运行的Web Java程序。


将数据库初始化文件 init.sql 放入到./mysql/init 目录:
drop database if exists test;
CREATE DATABASE test DEFAULT CHARACTER SET utf8;
use test;
CREATE TABLE users (sno int(11) DEFAULT NULL,sname varchar(50) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;INSERT INTO users values (1,'Bob'),(2,'Linda')
将应用 jar 包放入到./app 目录:
启动我们的项目:
我们可以在Mysql中查询到被插入的数据:
Docker Compose 部署 WordPress
WordPress简介
WordPress 是使用 PHP 语言开发的博客平台,用户可以在支持 PHP 和 MySQL 数据库的服务器上架设属于自己的网站。也可以把 WordPress 当作一个内容管理系统来使用。
WordPress 有许多第三方开发的免费模板,安装方式简单易用。不过要做一个自己的模板,你一定需要具备前端技术的支持。
拉取WordPress镜像:
docker pull wordpress:4.5-fpm
当然这一步可以不做,因为后面执行.yml文件时,会自动拉取。
部署 WordPress:
# 定义所有services信息
version: "3.8"
services:mysql:image: mysql:5.7volumes:- /root/wordpress/var/mysql/data/:/var/lib/mysql# 定义容器重启策略restart: always# 设置环境变量environment:MYSQL_ROOT_PASSWORD: mywordpress123MYSQL_DATABASE: wordpressMYSQL_USER: wordpressMYSQL_PASSWORD: wordpresshealthcheck:test: mysql --user=root --password='mywordpress123' -e "SELECT 1;"interval: 10stimeout: 5sretries: 10wordpress:image: wordpress:latest# 构建依赖顺序,Mysql先启动depends_on:mysql:condition: service_healthy# 建立映射关系ports:- "8080:80"restart: alwaysvolumes:- /root/wordpress/var/www/html/:/var/www/htmlenvironment:WORDPRESS_DB_HOST: mysql:3306WORDPRESS_DB_USER: wordpressWORDPRESS_DB_PASSWORD: wordpressWORDPRESS_DB_NAME: wordpress
使用 docker compose config检查yml格式:
docker compose up -d
配置参数,点击安装:
进入后台:
删除,释放空间:
本篇到此结束,感谢你的阅读。
祝你好运,向阳而生~
相关文章:

综合实战(volume and Compose)
"让我,重获新生~" MySQL 灾难恢复 熟练掌握挂载卷的使用,将Mysql的业务数据存储在 外部。 实战思想: 使用 MySQL 5.7 的镜像创建容器并创建一个普通数据卷 "mysql-data"用来保存容器中产生的数据。我们需要容器连接到Mysql服务&a…...

国际黄金价格要具体市况具体分析
国际黄金价格走势多变,投资者在参与的过程中要注意自己交易策略的灵活度,要做到具体市况具体分析,而且面对不同的市况,要采用不同的挂单方式,这样才能把握住更有利的入场时机。在大家常用的现货黄金交易软件MT4中&…...

【python】0、超详细介绍:json、http
文章目录 一、json二、http2.1 json 读取 request 序列化 三、基本类型3.1 decimal 四、图像4.1 颜色格式转换 一、json import json f open(data.json) # open json file data json.load(f) # 读出 json object for i in data[emp_details]: # 取出一级属性 emp_details, …...

可观测性在威胁检测和取证日志分析中的作用
在网络中,威胁是指可能影响其平稳运行的恶意元素,因此,对于任何希望避免任何财政损失或生产力下降机会的组织来说,威胁检测都是必要的。为了先发制人地抵御来自不同来源的任何此类攻击,需要有效的威胁检测情报。 威胁…...

win32com打开带密码excel
简单来说给excel上加密常见的方法有两种 方法一: 直接修改文件属性 这种方法对应的解法是 excel DispatchEx("Excel.Application") # 启动excel excel.Visible visible # 可视化 excel.DisplayAlerts displayalerts # 是否显示警告 wb excel.Wo…...
IntelliJ IDEA 的常用快捷键
IntelliJ IDEA 的常用快捷键非常多,这些快捷键可以帮助你更高效地编写代码。以下是一些常用的快捷键总结: 基础操作 CtrlN:查找类CtrlShiftN:查找文件CtrlAltL:格式化代码AltInsert:生成代码(…...
C语言统计成绩
目录 描述 输入描述: 输出描述: 问题描述 解决方案 总结 描述 输入n科成绩(浮点数表示),统计其中的最高分,最低分以及平均分。 数据范围:1≤�≤100 1≤n≤100 , …...
LVS做集群四层负载均衡的简单理解
背景:业务中主要是TCP/SSL连接,要做四层负载均衡。 之前做负载均衡,调研了nginx(见之前的nginx实现后端服务负载均衡和nginx负载均衡监测后台服务状态)。 nginx作为一个应用,做四层负载均衡效率低。lvs是li…...

2.1_6 线程的实现方式和多线程模型
文章目录 2.1_6 线程的实现方式和多线程模型(一)线程的实现方式(1)用户级线程(2)内核级线程 (二)多线程模型(1)一对一模型(2)多对一模…...

4.5 MongoDB 文档存储
目录 1. 相关安装 2. Pycharm可视化观察MongoDB 3. python使用 MongoDB 最初流程代码 4. 插入、查询、更新、删除数据 4.1 插入数据 4.2 查询数据 4.3 更新数据 4.3.1 更新一条数据 4.3.2 更新多条数据 4.4 删除数据 5. 计数、排序、偏移 5.1 计数 5.2 排序 5.3 …...
什么是服务级别协议(SLA)?
在数字化时代,企业和服务提供商之间的关系变得越来越复杂,而服务级别协议(SLA)则在这个复杂网络中发挥着至关重要的作用。本文将深入介绍SLA,从它的定义、应用场景到监测方法,全方位解析这一法律桥梁如何确…...
使用Python进行Sentinel-2 图像聚类
聚类或无监督分类是根据统计相似性将图像的像素值分组或聚合到一定数量的自然类(组)的过程。在本教程中,我们将使用rasterio进行sentinel-2图像处理,并使用功能强大的完整scikit-learn python 包在jupyter Notebook中进行聚类。 Scikit-learn是一个用于 Python 编程语言的…...

SNZ资本的首席信息官Gavin确认出席Hack .Summit() 2024香港开发者大会!
SNZ资本的首席信息官Gavin确认将出席由 Hack VC 主办,并由 AltLayer 和 Berachain 联合主办,与 SNZ 和数码港合作,由 Techub News 承办的Hack.Summit() 2024区块链开发者盛会。 Gavin是SNZ控股和SNZ资本的首席信息官。Gavin在区块链和金融科技…...

js里面有引用传递吗?
一:什么是引用传递 引用传递是相对于值传递的。那什么是值传递呢?值传递就是在传递过程中再复制一份,然后再赋值给变量,例如: let a 2; let b a;在这个代码中,let b a; 就是一个值传递,首先…...
C 语言 math.h 库介绍
在 C 语言中,math.h 头文件定义了各种数学函数和一个宏,用于处理数学运算。这些函数接受 double 类型的参数,并返回 double 类型的结果。 库宏 在 math.h 中定义了唯一的一个宏: HUGE_VAL:当函数的结果不可表示为浮…...
Eigen-Matrix矩阵
Eigen-Matrix矩阵 一、概述二、矩阵的前三个模板参数三、向量四、动态维度参数五、构造函数六、索引访问器七、逗号初始化八、矩阵维度调整九、赋值和调整大小十、固定尺寸vs.动态尺寸十一、可选模板参数十二、方便预定义 一、概述 在Eigen中,所有矩阵和向量都是矩…...

蓝桥杯14届计算思维国赛U8组包含真题和答案
十四届蓝桥杯国赛考试计算思维 U8 组 答案在底部 第一题 以下选项中,( )是由美国计算机协会设立,对在计算机领域内作出重要贡献的个人授予的奖项 。A.图灵奖 C.菲尔兹奖 B.诺贝尔奖 D.普利策奖 第二题 希希去吃寿司。餐台上摆出了许多食物,可供大家自选。如下图所示。 …...
opencv内存溢出del释放变量 (python)
报错: cv2.error: OpenCV(3.4.17) D:\a\opencv-python\opencv-python\opencv\modules\core\src\alloc.cpp:73: error: (-4:Insufficient memory) Failed to allocate 12211548 bytes in function ‘cv::OutOfMemoryError’ 检查内存代码 import psutil# 获取当前进…...

【算法与数据结构】复杂度深度解析(超详解)
文章目录 📝算法效率🌠 算法的复杂度🌠 时间复杂度的概念🌉大O的渐进表示法。 🌠常见复杂度🌠常见时间复杂度计算举例🌉常数阶O(1)🌉对数阶 O(logN)🌉线性阶 O(N)&#x…...

Upload-Labs-Linux1【CTF】
拿到这道题目一看,发现是upload靶场;这不简简单单吗;结果中间还是遇到了一些小问题 小坑总结:该关只识别标准php语法:<?php phpinfo()?>格式;即<?php ?> 不识别<? phpinfo()?> &…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...
服务器硬防的应用场景都有哪些?
服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

PL0语法,分析器实现!
简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...

前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...
今日科技热点速览
🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...