华为云云耀云服务器L实例评测|企业项目最佳实践之docker部署及应用(七)
华为云云耀云服务器L实例评测|企业项目最佳实践系列:
华为云云耀云服务器L实例评测|企业项目最佳实践之云服务器介绍(一)
华为云云耀云服务器L实例评测|企业项目最佳实践之华为云介绍(二)
华为云云耀云服务器L实例评测|企业项目最佳实践之华为云耀云服务器L实例介绍(三)
华为云云耀云服务器L实例评测|企业项目最佳实践之云耀云服务器L实例购买 (四)
华为云云耀云服务器L实例评测|企业项目最佳实践之评测用例(五)
华为云云耀云服务器L实例评测|企业项目最佳实践之包管理工具安装软件(六)
华为云云耀云服务器L实例评测|企业项目最佳实践之docker部署及应用(七)
华为云云耀云服务器L实例评测|企业项目最佳实践之私有库搭建verdaccio(八)
华为云云耀云服务器L实例评测|企业项目最佳实践之启动宠物预约项目(九)
华为云云耀云服务器L实例评测|企业项目最佳实践之计划任务与Queue队列实践 (十)
华为云云耀云服务器L实例评测|企业项目最佳实践之压测 (十一)
华为云云耀云服务器L实例评测|企业项目最佳实践之建议与总结(十二)
八、华为云耀云服务器L实例docker、docker-compose安装及部署MySQL、Redis应用:
随着云原生、容器化、微服务、K8S等技术的发展,容器 docker 也逐渐在企业团队实践中大量的使用。它可以提供了一套标准化的解决方案,极大地提升了部署、发布、运维的效率。
如下为目前公司某个业务线集群使用的K8S云服务器集群:

K8S相关部署文件:

1. 什么是容器:
容器是操作系统内核自带能力,是基于 Linux内核实现的轻量级高性能資源隔离机制Docker是容器技术之一,核心在于实现应用与运行环境整体打包以及打包格式统,Docker通过 Linux Container技术的包装将App变成种标准化的、可移植的、自管理的组件。

| 容器关键价值: |
|---|
| ①. 快速交付和部署:一站式部署/运维容器应用,一键式滚动升级。 |
| ②. 提升资源利用率:更细粒度地划分资源,提高资源利用率。 |
| ③. 保障业务高可用:秒级弹性扩容,快速响应并发高峰。 |
| ④. 复杂系统管理简单:单一重型应用解耦拆分为多个轻量模块,每个模块升级伸缩更加灵活,轻松应对市场变化。 |
2. Docker的典型应用场景:

3. 安装docker:
查看docker是没有默认安装的,我们这里直接采用官方给出的命令来进行docker的安装,可以看到采用的也是华为云的网络地址,安装的速度非常的快。
# 安装docker程序
sudo apt-get install -y docker.io

docker安装完后,可以查看docker版本以及使用docker简单的命令运行是否正常。
# 查看docker的版本
docker -v
# 查看当前docker运行的容器
docker ps
# 查看当前docker下载的镜像image
docker images

4. docker搭建MySQL 5.7容器:

# 拉取mysql镜像
docker pull mysql:5.7
# 启动一个mysql容器
docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci
# 查看正在运行的容器
docker ps
# 查看所有的镜像
docker images

5. docker搭建Redis容器:

# 拉取redis镜像
docker pull redis
# 启动一个redis容器
docker run --name redis-server -p 6379:6379 -d redis
# 查看正在运行的容器
docker ps
# 查看所有的镜像
docker images
# 进入redis容器
docker exec -it 容器id /bin/bash

6. 安装docker-compose:
docker-compose是一个用来定义个运行复杂应用的docker工具,使用该工具可以轻松、高效的管理容器,通过一个配置文件可以管理多个docker容器。
使用 docker Compose 可以轻松、高效的管理容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务,非常适合组合使用多个容器进行开发的场景。

拉取github对应的程序,很多时候,网络超时,如果您没有网络的问题,可以尝试以下方案安装:
sudo curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

找到其它的方案,使用 pip来安装docker-compose。
# pip安装docker-compose
sudo pip install docker-compose
# 查看版本
docker-compose -v

7. docker-compose搭建MySQL、Redis容器:
.env文件:
MYSQL_DATABASE=huawei
MYSQL_USER=root
MYSQL_PASSWORD=123456
MYSQL_ROOT_PASSWORD=root
MYSQL_DIR=./mysql
MYSQL_PORT=3306
MYSQL_VERSION=5.7
docker-compose.yml文件:
version: '3'networks:node-network:driver: bridgeservices:### Reids Container #######################################redis:image: rediscontainer_name: redis-dockerports:- 6379:6379environment:TZ: Asia/Shanghainetworks:- node-network### mysql Container ###########################mysql:restart: alwaysbuild:context: ./mysqlargs:- MYSQL_VERSION=${MYSQL_VERSION}# 指定容器的名称container_name: mysql-docker# 使container内的root拥有真正的root权限,否则,container内的root只是外部的一个普通用户权限# 有可能数据卷可能挂载不了,启动不起privileged: truecommand: --innodb-use-native-aio=0environment:MYSQL_DATABASE: ${MYSQL_DATABASE} # 指定一个数据库,在容器启动时创建.# 创建一个新用户,这个用户在MYSQL_DATABASE指定的数据库上拥有超级用户权限MYSQL_USER: ${MYSQL_USER}MYSQL_PASSWORD: ${MYSQL_PASSWORD}MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}volumes:- "${MYSQL_DIR}/data:/var/lib/mysql" # 挂载数据目录- "${MYSQL_DIR}/logs:/var/lib/mysql-logs" # 挂载日志目录ports:# 将容器的3306映射到本地3306,前面是本地端口- "${MYSQL_PORT}:3306"

销毁容器:
# 启动MySQL和Redis容器
docker-compose up -d redis mysql
# 查看容器
docker ps
# 销毁容器
docker down
8. 使用“Navicat Premium”连接MySQL服务器,有两种方案进行连接:
| 序号 | 连接方案 |
|---|---|
| 1 | 使用本地先通过SSH的方式连接到华为云耀云服务器L实例服务器,再连接本地localhost的方式连接MySQL服务器。 |
| 2 | 开放服务器外网3306端口,直接使用华为云耀云服务器L实例服务器的IP + port进行连接。 |

在华为云耀云服务器L实例中的安全组,如下添加规则,开通3306的外网限制规则,在外网即可访问华为云耀云服务器L实例的内部端口。



9. 使用连接Redis服务器:
Redis Desktop Manager(RDM)是一款用于管理和操作Redis数据库的图形化界面工具。它提供了简单易用的界面,使用户能够方便地执行各种Redis数据库操作,并且支持多个Redis服务器的连接。
在安全组中,开通6379的端口。

使用IP + 端口连接redis实例。

进行redis的key操作。

10. 小结:
docker可以在共享相同内核空间的单个主机上运行基于不同 Linux 发行版的容器。例如,在 Ubuntu 服务器上运行 RHEL、CentOS、基于 SUSE 的容器,只有用户空间不同,内核空间相同,可以构建MySQL、Redis、Nginx的容器或集群。

通过对华为云耀云服务器L实例安装docker及docker-compose,再部署MySQL和Redis的容器,并没有发现不满足需求的,安装的过程中,默认自带的华为云源下载的速度非常的快,是值得推荐的。

以下为安装过的软件清单:

以下为软件安装部署整体测试进度:

相关文章:
华为云云耀云服务器L实例评测|企业项目最佳实践之docker部署及应用(七)
华为云云耀云服务器L实例评测|企业项目最佳实践系列: 华为云云耀云服务器L实例评测|企业项目最佳实践之云服务器介绍(一) 华为云云耀云服务器L实例评测|企业项目最佳实践之华为云介绍(二) 华为云云耀云服务器L实例评测࿵…...
MAC上使用Wireshark常见问题
文章目录 介绍正文启动异常-Permission denied解决方法 过滤协议和地址指定源地址和目的地址调整 time format 介绍 简单记录Wireshark在日常使用过程中的遇到的小case。 正文 Wireshark相较于tcpdump使用较为简单,交互也更为友好。 点击Start即可启动抓包 启动…...
在C++中++a和a++有什么区别?
2023年10月16日,周一中午 a和a在语义上的区别 a是先进行运算(增加1),然后返回新值。 a是先返回原值,然后进行运算(增加1)。 a和a在效率上的区别 a直接返回新值,不需要临时变量保存原值。 而a需要先返回原值,然后再进行增加1的操作。这需要使用一个临时变量来保存…...
NewStarCTF2023公开赛道-压缩包们
题目提示是压缩包 用010editor打开,不见PK头,补上50 4B 03 04 14 00 00 00 将文件改成.zip后缀,打开,解压出flag.zip 尝试解压,报错 发现一串base64编码 SSBsaWtlIHNpeC1kaWdpdCBudW1iZXJzIGJlY2F1c2UgdGhleSBhcmUgd…...
oracle数据库增加表空间数据文件
查询数据文件:select * from dba_data_files order by file_name; 增加:alter tablespace 数据库名 add datafile data size 34359721984;...
【08】基础知识:React中收集表单数据(非受控组件和受控组件)
一、概念 非受控组件: 页面中所有输入类的 DOM,现用现取。 给组件绑定 ref 属性,在需要时通过 ref 获取相应值。 受控组件: 页面中所有输入类的 DOM,随着输入,将内容维护到状态 state中,当…...
数据结构之堆排序和前,中,后,层序遍历,链式二叉树
首先我们要知道升序我们要建小堆,降序建大堆,这与我们的大多人直觉相违背。 因为我们大多数人认为应该将堆顶的数据输出,但如果这样就会导致堆顶出堆以后,堆结构会被破坏,显然我们不能这样。 所有我们反其道而行&…...
多线程中ThreadPoolExecutor.map()中传递多个参数
with concurrent.futures.ThreadPoolExecutor(max_threads) as executor:results executor.map(get_captcha_image, ip_addrs, [img_url] * len(ip_addrs)) #要传入多个参数时,每个参数都得是固定相同长度的可迭代对象# 收集结果for result in results:print(resul…...
linux centos7 环境下 no such file or directory
目录 1.问题描述2.主要原因2.1修改后代码2.2修改前代码 总结参考 1.问题描述 预览excel文件时无法找到对应的html文件 2.主要原因 异常原因:代码获取的是系统的tmp文件,但是linux环境环境中心tmp目录是没有权限的,所以不能获取系统的根目录…...
Nginx 反向代理 SSL 证书绑定域名
配置 Nginx 反向代理和 SSL 泛域名证书绑定域名 Nginx 是一个功能强大的 Web 服务器和反向代理服务器,可以用于将客户端请求转发到后端服务器,并提供安全的 HTTPS 连接。本文将介绍如何配置 Nginx 反向代理,并使用 SSL 泛域名证书绑定域名&a…...
SpringBoot 集成 JMS 与 IBMMQ 代码示例教程
文章目录 前言一、集成 JMS 与 IBMMQ1、pom 依赖2、yml 配置3、Properties 配置类4、Factory 连接工厂类5、配置连接认证6、配置缓存连接工厂7、配置事务管理器8、配置JMS模板9、消息发送与接收 总结 前言 SpringBoot 集成 IBMMQ,实现两个服务间的消息通信。 一、集…...
大模型之Prompt研究和技巧
大模型之Prompt研究和技巧 大模型之Prompt编写简介组成技术Zero-ShotFew-shotCOTCOT-SCTOTGoTReAct 大模型之Prompt编写 简介 Prompt是是给 AI **模型的指令,**一个简短的文本输入,用于引导AI模型生成特定的回答或执行特定任务。 Prompt是你与语言模型沟…...
掌握Golang匿名函数
一个全面的指南,以理解和使用Golang中的匿名函数 Golang以其简单和高效而闻名,赋予开发人员各种编程范式。其中一项增强代码模块化和灵活性的功能就是匿名函数。在这篇正式的博客文章中,我们将踏上探索Golang匿名函数深度的旅程。通过真实世…...
HarmonyOS云开发基础认证---练习题二
【判断题】 2/2 Serverless是云计算下一代的默认计算范式。 正确(True) 【判断题】 2/2 接入认证服务后,用户每次收到验证码短信都需要开发者买单。 错误(False) 【判断题】 2/2 认证服务手机号码登录需要填写国家码。 正确(True) 【判断题】 2/2 在Cloud Functi…...
ffmpeg视频解码器的配置选项含义
lowres的含义 lowres是AVCodecContext结构体中的一个成员变量,用于指定编解码器的降低分辨率级别。 在某些情况下,为了加快编解码的速度或减少计算资源的消耗,可以通过设置lowres参数来降低编解码器的分辨率级别。这将导致编解码器在处理视…...
enter ubuntu boot option in virt-manager
在全屏模型下,启动过程中按下F8或者Ctrl F8。 参考:https://serverfault.com/questions/463024/how-do-i-access-the-f8-bootmenu-while-booting-a-windows-2008r2-kvm-guest-vm...
电商运营该如何做 AB 测试
更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 近年,电商行业进入了一个新的发展阶段,一方面电商市场规模持续扩大,另一方面直播电商、即时零售、社区团购等新兴电商业态在疫情…...
go环境部署
#env 命令查看 PATH 发现 #这两条环境变量是把 通过brew 安装的所有程序加入到环境变量中,其中就包含了go /opt/homebrew/sbin /opt/homebrew/bin#mac 系统 将原本 brew 安装的 go 1.20.5版本卸载 brew uninstall go #然后 去官网下载 https://go.dev/dl/ 想要的版本 1.21.0 …...
HTTP/2 中的漏洞
另一个热门漏洞是 CVE-2023-44487。 该漏洞与 HTTP/2 协议实施中的一个缺陷有关,可用于实施 DDoS 攻击。使用该漏洞的攻击被命名为 HTTP/2 快速重置。 为什么它很危险 要利用该漏洞,攻击者需要在 HTTP/2 会话中打开大量请求,然后在不等待服…...
智能油烟机 优化烹饪体验
如果说空调是夏天最伟大的发明,那么油烟机则是健康厨房的伟大推进者。随着科技的发展,智能化的油烟机逐渐走进了人们的日常生活。每当我们在爆炒、油炸食物的时候,油烟总能呛得人眼睛痛、鼻子难受,传统的油烟机面前我们还需要手动…...
接口测试中缓存处理策略
在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...
以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:
一、属性动画概述NETX 作用:实现组件通用属性的渐变过渡效果,提升用户体验。支持属性:width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项: 布局类属性(如宽高)变化时&#…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...
【JVM】- 内存结构
引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...
PL0语法,分析器实现!
简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...
tree 树组件大数据卡顿问题优化
问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...
Fabric V2.5 通用溯源系统——增加图片上传与下载功能
fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...
处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的
修改bug思路: 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑:async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...
Netty从入门到进阶(二)
二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架,用于…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...
