利用Docker一键发布Nginx-Tomcat-MySQL应用集群
Docker简介,可以看上一篇文章:
为什么互联网公司离不开Docker容器化,它到底解决了什么问题?-CSDN博客
Docker体系结构
docker核心就是镜像和容器:
镜像就是应用程序的安装文件,包含了所有需要的资源,但是不能运行。
容器是最终运行的产物,每个容器都是可以独立运行的应用程序。
需要先在服务器上安装docker引擎,才可以进行使用,服务器上安装doker引擎后,会内置一个客户端。docker的执行过程为:客户端发送docker命令,docker引擎接收到命令后,会检查本地是否有镜像,没有的话就用远程仓库把镜像下载,然后创建容器,对外提供服务。
说明:本文章是学习docker的使用,所以是在Windows电脑上,安装了虚拟机,在虚拟机中安装CentOS7操作系统,在CentOS7中进行docker的部署;在实际的项目部署时,不需要虚拟机,而是直接在服务器上进行部署。
环境准备
安装虚拟机的步骤省略。
虚拟机安装后,在虚拟机中安装CentOS7,参考文章:
在VMware中安装和配置linux系统_vmware创建虚拟机-CSDN博客
CentOS7配置网络的教程(让CentOS7可以和物理机网络互通,同时可以访问互联网),参考文章:
VMware虚拟机环境下Centos7 静态IP的设置方法_虚拟机设置ip-CSDN博客
为了操作方便,使用Xsheel和Xftp进行命令操作和文件传输,这两个软件直接从官网下载即可,安装免费版本。下载地址:家庭/学校免费 - NetSarang Website
以上步骤全部操作完成,把虚拟机运行起来,找到安装的操作系统并开机,便可以用Xsheel直接访问CentOS7了。这是在物理机上使用Xsheel连接上CentOS7后的样子:
在CentOS7上安装docker
1.安装底层工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
这是安装Docker的底层工具,它就会自动提示下载,很快下载就完成了。
如果遇到报错的情况,可以参考这个文章进行解决:
安装docker 遇到异常Could not resolve host: mirrorlist.centos.org
2.加入阿里云yum仓库提速docker下载过程
sudo yum-config-manager --add-repohttp://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
增加阿里云的Docker下载仓库,默认情况下,Docker官方是从他的国外的服务器下载速度是非常慢的,所以在这里我们是使用yum config manager组件来指定一个新的下载源,指向的是阿里的应用服务器,通过阿里来提高我们Docker的下载速度。
3.更新一下仓库的源信息
sudo yum makecache fast
4.自动安装下载Docker
sudo yum -y install docker-ce
在这里它就会自动的下载解析,可以看到利用阿里云下载速度是非常快的,Docker便自动安装成功。
5.启动Docker服务
sudo service docker start
6.验证docker是否启动成功
docker version
至此docker安装成功,docker它的安装过程,因为操作系统可能有不同,但是命令每个平台都是一样的,docker version显示我们当前已安装的版本。
7.配置镜像加速器
因为docker需要从远程的仓库中下载镜像,速度比较慢,为了快速下载镜像文件,通过使用国内提供的仓库进行镜像的下载,操作步骤如下:
vi /etc/docker/daemon.json
删除原有的配置,替换为下面的配置:
{
"registry-mirrors": ["https://docker.registry.cyou",
"https://docker-cf.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://docker.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://mirror.aliyuncs.com",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.iscas.ac.cn",
"https://docker.rainbond.cc"]
}
保存并退出文件编辑。
重新启动docker
systemctl daemon-reload
systemctl restart docker
到此为止,docker镜像加速器配置就完成了。
应用部署实战
部署一个Java编译后的jar包程序,并通过NGINX反向代理服务器,对应用进行访问:
要部署的应用架构如下:
app1、app2、app3代表3个应用,模拟分布式架构。NGINX负责请求转发,分别将用户请求转发给三个应用,三个应用连接MySQL数据库进行数据获取。
以上内容均放在一个虚拟网段中,给该网段起名:my-bridge。
1.创建虚拟网段
docker network create -d bridge my-bridge
2.构建MySQL 5.7 容器,并挂载到容器内部
把素材放到服务器/usr/local目录下
素材文件下载地址:
https://download.csdn.net/download/liangmengbk/90062212?spm=1001.2014.3001.5503
docker run \
-p 3306:3306 \
--network my-bridge \
--name db \
-v /usr/local/bsbdj/sql:/docker-entrypoint-initdb.d \
-v /usr/local/bsbdj/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
命令解读:
- docker run ...mysql 5.7 代表创建并自动运行mysql 5.7 容器,如果宿主机没有mysql 5.7镜像,则自动会从dockerhub进行下载。
- --name db是容器的名字。
- -p 3306:3306 代表将容器内部MySQL5.7 映射到宿主机的3306端口,这样才可以从外界进行访问。
- --network my-bridge 代表将db容器加入到my-bridge虚拟网段,这样才可以和其他容器通信。
- -v /usr/local/bsbdj/sql ... 代表将宿主机的sql目录挂载到容器内的docker-entrypoint-initdb.d,根据dockerhub 的描述,放入docker-entrypoint-initdb.d目录下的SQL文件会在MySQL容器创建后自动执行,完成数据初始化任务。
- -v /usr/local/bsbdj/data ...同样是挂载,因为容器很容易创建或迁移,如果将MySQL数据文件保存在容器内部,容器销毁数据就会丢失,因此同样使用-v命令将容器内产生的数据文件挂载到宿主机的data目录下,这样即使容器销毁数据也不会丢失。
- -e MYSQL_ROOT_PASSWORD=root ,mysql容器要求的环境参数,说明创建容器时默认数据库root密码为root。
- -d 代表采用后台模式运行,不加-d则采用前台独占方式运行。
注意:docker发现宿主机上没有MySQL容器,会自动下载。
安装的MySQL对应的架构图如下:
MySQL安装完成后,使用navicate工具进行访问:
数据库和表都已经创建完成,创建数据库和表用到的脚本就是/usr/local/bsbdj中sql目录中提前准备好的脚本:
3.构建应用镜像
在上传到/usr/local/bsbdj目录下资料中,有个dockerfile文件,这个文件是用来构建应用镜像的,也就是把自己的应用程序,构建为docker的镜像文件。
dockerfile文件内容:
FROM openjdk:11 表示引用openjdk11的镜像,在这个镜像基础上进行扩展,
ADD ./app /usr/local/bsbdj 将指定的宿主机文件,复制到容器内部。
WORKDIR /usr/local/bsbdj 在镜像内部切换工作目录
CMD ["java","-jar", "bsbdj.jar"] 执行 java -jar bsbdj.jar 命令
切换到dockerfile文件所在的路径下面:
cd /usr/local/bsbdj
执行创建镜像的命令:
docker build -t itlaoqi/bsbdj:1.0 .
该命令的作用是读取dockerfile文件,并在宿主机上生成镜像。
镜像的名称是自定义的,这里定义为 itlaoqi/bsbdj:1.0
最后面的点,代表当前目录。
镜像创建完成后,查看所有安装部署在宿主机上的镜像:
docker images
这个就是我们自己创建的镜像文件。
4.创建APP容器
docker run \
--name app1 \
--network my-bridge \
-p 8080:8080 \
-d itlaoqi/bsbdj:1.0
docker run --name app2 \
--network my-bridge \
-p 8081:8080 \
-d itlaoqi/bsbdj:1.0
docker run \
--name app3 \
--network my-bridge \
-p 8082:8080 \
-d itlaoqi/bsbdj:1.0
上面的命令会创建3个应用容器,三个容器都是基于同一个镜像(itlaoqi/bsbdj:1.0)生成的,三个容器名称分别为app1、app2、app3
在浏览器中访问宿主机(CentOS操作系统的IP,我的IP为192.168.1.10),加上应用的端口,就可以访问应用系统了。
三个应用容器通过不同的端口,都可以正常访问。
需要注意的地方,jar包程序中数据库链接需要与数据库容器名称一致,应用才能访问到数据库。
这里的db就是MySQL容器的名称,代码中的名称要跟容器名称一致,才能访问数据库。
5.创建Nginx容器
创建反向代理服务器,配置负载均衡策略。
docker run --name nginx \
-v /usr/local/bsbdj/nginx/nginx.conf:/etc/nginx/nginx.conf \
--network my-bridge \
-p 80:80 \
-d nginx
注意:docker发现宿主机上没有NGINX容器,会自动下载。
命令解读:
docker run --name nginx \ 运行NGINX容器,如果没有则自动部署
-v /usr/local/bsbdj/nginx/nginx.conf:/etc/nginx/nginx.conf \ 用宿主机上的文件替换NGINX容器中的配置文件
-p 80:80 \ 宿主机的80端口对应到NGINX容器的80端口。
/usr/local/bsbdj/nginx/nginx.conf文件是提前准备好的NGINX配置负载均衡策略的文件。
配置文件中核心部分是上图所示的位置,app1、app2、app3指应用容器的名称,后面的8080代表容器内提供服务的端口。这里一定要填写容器内服务的端口,不是宿主机的端口(8080/8081/8082)。
location / 代表对请求做转发,proxy_pass为转发的规则,bsbdj对应到upstream的名称。当前的配置默认采用轮询的方式,对请求均匀进行转发。
通过浏览器访问应用,验证NGINX是否部署成功,通过访问宿主机的IP(80端口可以省略),能够正常访问,就说明NGINX部署完成了。
6.实用脚本
查看网段内的容器信息
docker network inspect my-bridge
my-bridge是指虚拟网段名称。
在containers中看到容器,都是互联互通的。这些容器都是通过容器名称(Name)来互相访问的。
查看当前启动的容器
docker ps
删除上面已经安装的所有容器与镜像
docker rm -f nginx
docker rm -f app1
docker rm -f app2
docker rm -f app3
docker rm -f db
docker rmi -f itlaoqi/bsbdj:1.0
docker rmi -f mysql:5.7
docker rmi -f openjdk:11
docker network rm my-bridge
rm 指移除容器
-f 指强制操作
rmi 指删除镜像
network 虚拟网段
docker官网:https://hub.docker.com/
如果要在多台服务器上进行容器集群部署,需要使用另外的技术Kubernetes(K8s)。K8s被称为容器编排工具,作用是在docker的基础上进行大规模、多节点、多容器的统一管理和统筹。而且提供了响应的监控和管理界面。可以同时管理超过20万台服务器已经上百万个容器实例。
相关文章:
利用Docker一键发布Nginx-Tomcat-MySQL应用集群
Docker简介,可以看上一篇文章: 为什么互联网公司离不开Docker容器化,它到底解决了什么问题?-CSDN博客 Docker体系结构 docker核心就是镜像和容器: 镜像就是应用程序的安装文件,包含了所有需要的资源&…...
九,[极客大挑战 2019]LoveSQL1
进入靶场 随便输输 试试字符 报错了 根据以上4张图知是单引号闭合 还以为这是flag呢,白激动一场,,,,,,,,自闭了 有个搞笑的点,其实可以用sqlmap 不过咱不用哈…...
17 go语言(golang) - 错误处理
错误处理 错误处理是编程中用于识别、响应和恢复程序运行时出现的错误和异常情况的过程。其目的是确保程序的鲁棒性(一个系统、模型或函数在面对错误输入、工作压力、意外情况或故意攻击时仍能保持稳定性和可靠性的能力),即使在出现错误的情…...
前端跳转路由的时候,清掉缓存
清除路由缓存的方法 使用 $router.push() 方法:在跳转路由时,可以通过传递一个包含 replace: true 属性的对象来实现清除路由缓存。例如: this.$router.push({ path: "/new-route", replace: true }); 使用 $router.replace…...
CentOS使用chrony服务进行时间同步源设置脚本
CentOS使用chrony服务进行时间同步源设置脚本 #!/bin/bash# Created: 2024-11-26 # Function: Check and Set OS time sync source to 10.0.11.100 # FileName: centos_set_time_source_to_ad.sh # Creator: Anster # Usage: # curl http://webserver-ip/scripts/centos_set…...
AI RPA 影刀基础教程:开启自动化之旅
RPA 是什么 RPA 就是机器人流程自动化,就是将重复的工作交给机器人来执行。只要是标准化的、重复的、有逻辑行的操作,都可以用 RPA 提效 准备 安装并注册影刀 影刀RPA - 影刀官网 安装 Chrome 浏览器 下载链接:Google Chrome 网络浏览器 …...
深入解析Java集合框架:List集合及其实现类的应用与原理
|| 持续分享系列教程,关注一下不迷路 || || B站视频教程:墨轩大楼 || || 知识星球:墨轩编程自习室 || Java集合框架是Java编程语言中一个非常重要的组成部分,…...
MySQL需掌握到何种程度?才能胜任工作
大家好,我是袁庭新。星友问:MySQL需要学到什么程度?才能胜任日常的软件开发工作呢!以下是一些建议的学习目标和程度,这些目标旨在帮助你在工作中高效地使用MySQL。 数据库的基本概念、MySQL的安装及配置、SQL的概念、S…...
如何使用brew安装phpredis扩展?
如何使用brew安装phpredis扩展? phpredis扩展是一个用于PHP语言的Redis客户端扩展,它提供了一组PHP函数,用于与Redis服务器进行交互。 1、cd到php某一版本的bin下 /usr/local/opt/php8.1/bin 2、下载 phpredis git clone https://githu…...
力扣hot100道【贪心算法后续解题方法心得】(三)
力扣hot100道【贪心算法后续解题方法心得】 十四、贪心算法关键解题思路1、买卖股票的最佳时机2、跳跃游戏3、跳跃游戏 | |4、划分字母区间 十五、动态规划什么是动态规划?关键解题思路和步骤1、打家劫舍2、01背包问题3、完全平方式4、零钱兑换5、单词拆分6、最长递…...
时间同步服务器--Linux中
时间同步服务器 1. 时间同步服务 时间同步:多主机协作工作时,各个主机的时间同步很重要,时间不一致会造成很多重要应用的故障,如:加密协议,日志,集群等,利用NTP(Network Time Protocol )协议使网络中的各…...
银河麒麟V10-SP1设置redis开机自启
前言: redis安装请看:银河麒麟V10-SP1离线安装redis5.0.1_银河麒麟v10 redis5.0-CSDN博客 一、编辑自启文件 vim /etc/systemd/system/redis.service [Unit] DescriptionRedis In-Memory Data Store Afternetwork.target [Service] Typeforking ExecS…...
JVM 之垃圾回收器
一、GC 的分类 1.1 串行 VS 并行 串行回收:指在同一时间段内只允许有一个 CPU 用于执行垃圾回收操作,此时工作线程被暂停,直至垃圾回收结束 在单 CPU 处理器或者较小的应用内存等硬件平台不是特别优越的场合,串行回收器的超过并…...
基于Java Springboot宠物咖微信小程序
一、作品包含 源码数据库全套环境和工具资源部署教程 二、项目技术 前端技术:Html、Css、Js、Vue、Element-ui 数据库:MySQL 后端技术:Java、Spring Boot、MyBatis 三、运行环境 开发工具:IDEA/eclipse 微信开发者工具 数…...
求助——AssertionError: Attribute pipeline is missing from configuration.json.
我在本地运行Sunsimiao大模型的时候遇到了“AssertionError: Attribute pipeline is missing from configuration.json.”的问题。在网上找了很多问题都没有解决,求助一下广大网友。有什么好的解决方法吗? 本地环境如上所示,不知是哪里出…...
LearnOpenGL学习(光照 -- 颜色,基础光照,材质,光照贴图)
光照 glm::vec3 lightColor(0.0f, 1.0f, 0.0f); glm::vec3 toyColor(1.0f, 0.5f, 0.31f); glm::vec3 result lightColor * toyColor; // (0.0f, 0.5f, 0.0f); 说明:当我们把光源的颜色与物体的颜色值相乘,所得到的就是这个物体所反射的颜色。 创建…...
vulnhub靶场【哈利波特】三部曲之Aragog
前言 使用virtual box虚拟机 靶机:Aragog : 192.168.1.101 攻击:kali : 192.168.1.16 主机发现 使用arp-scan -l扫描,在同一虚拟网卡下 信息收集 使用nmap扫描 发现22端口SSH服务,openssh 80端口HTTP服务,Apach…...
【开发语言】层次状态机(HSM)介绍
层次状态机(Hierarchical State Machine, HSM),从基本原理、结构设计、实现方法以及如何结合 Qt 进行具体实现等方面进行分析。 1. 层次状态机的基本原理 层次状态机是一种用于管理复杂系统行为的状态机模型,它通过将状态组织成…...
Midjourney Imagine API 申请及使用
Midjourney Imagine API 申请及使用 Midjourney 是一款非常强大的 AI 绘图工具,只要输入关键字,就能在短短一两分钟生成十分精美的图像。Midjourney 以其出色的绘图能力在业界独树一帜,如今,Midjourney 早已在各个行业和领域广泛…...
Function Arguments and Function Parameters (函数的实参和函数的形参)
Function Arguments and Function Parameters {函数的实参和函数的形参} 1. Object-Oriented Programming Using C2. Function Arguments and Function ParametersReferences 1. Object-Oriented Programming Using C https://icarus.cs.weber.edu/~dab/cs1410/textbook/index…...
【C语言】递归的内存占用过程
递归 递归是函数调用自身的一种编程技术。在C语言中,递归的实现会占用内存栈(Call Stack),每次递归调用都会在栈上分配一个新的 “栈帧(Stack Frame)”,用于存储本次调用的函数局部变量、返回地…...
六、文本搜索工具(grep)和正则表达式
一、grep工具的使用 1、概念 grep: 是 linux 系统中的一个强大的文本搜索工具,可以按照 正则表达式 搜索文本,并把匹配到的行打印出来(匹配到的内容标红)。 2、语法 grep [options]…… pattern [file]…… 工作方式…...
spaCy 入门与实战:强大的自然语言处理库
spaCy 入门与实战:强大的自然语言处理库 spaCy 是一个现代化、工业级的自然语言处理(NLP)库,以高效、易用和功能丰富著称。它被广泛应用于文本处理、信息提取和机器学习任务中。本文将介绍 spaCy 的核心功能,并通过一…...
嵌入式硬件实战提升篇(三)商用量产电源设计方案 三路电源输入设计 电源管理 多输入供电自动管理 DCDC降压
引言:本文你能实际的了解到实战量产产品中电源架构设计的要求和过程,并且从实际实践出发搞懂电源架构系统,你也可以模仿此架构抄板到你自己的项目,并结合硬件篇之前的项目以及理论形成正真的三路电源输入设计与开发板电源架构块供…...
常用排查工具使用
1.spy++ Microsoft Spy++是一个非常好的查看Windows操作系统的窗口、消息、进程、线程信息的工具,简单易用,功能强大。 在vs的工具中默认安装,还可以监控到隐层窗口,通过查看窗口的属性可以获得更多信息,包括规格、窗口、类、进程等信息,可以帮助排查相关窗口的问题。 2…...
用三维模型的顶点法向量计算法线贴图
法线贴图的核心概念是在不增加额外多边形数目的情况下,通过模拟细节来改善光照效果。具体流程包括: 法线的计算与存储:通过法线映射将三维法线向量转化为法线贴图的 RGB 值。渲染中的使用:在片段着色器中使用法线贴图来替代原有的…...
基于Matlab高速动车组转臂定位橡胶节点刚度对车辆动力学影响仿真研究
本研究针对高速动车组转臂定位系统中橡胶节点的刚度对车辆动力学性能的影响进行仿真研究。随着高速铁路的发展,动车组的运行稳定性和舒适性成为设计和运营的核心问题,其中,转臂定位系统作为动车组悬挂系统的重要组成部分,其性能对…...
PostgreSQL认证培训需要什么条件
PostgreSQL认证培训通常没有严格的前置条件,但以下几点可以帮助你更好地准备和通过认证考试: 1、基础知识:具备基本的数据库知识和经验,特别是对SQL有一定的了解。如果你Oracle、MySQL等基础知识,对对你学习PostgreSQ…...
Rust 图形界面开发——使用 GTK 创建跨平台 GUI
第五章 图形界面开发 第一节 使用 GTK 创建跨平台 GUI GTK(GIMP Toolkit)是一个流行的开源跨平台图形用户界面库,适用于创建桌面应用程序。结合 Rust 的 gtk-rs 库,开发者能够高效地构建现代化 GUI 应用。本节将详细探讨 GTK 的…...
Spring中每次访问数据库都要创建SqlSession吗?
一、SqlSession是什么二、源码分析1)mybatis获取Mapper流程2)Spring创建Mapper接口的代理对象流程3)MapperFactoryBean#getObject调用时机4)SqlSessionTemplate创建流程5)SqlSessionInterceptor拦截逻辑6)开…...
【数据分析】布朗运动(维纳过程)
文章目录 一、概述二、数学布朗运动2.1 数学定义2.2 布朗运动的数学模型2.21 标准布朗运动2.22 布朗运动的路径2.23 布朗运动的方程 三、布朗运动在金融学中的应用四、数学构造(以傅里叶级数为例)4.1 傅里叶级数的基本思想4.2 构造布朗运动 一、概述 布…...
静态页面 和 动态页面(Java Web开发)
1. 静态页面 1.1 什么是静态页面? 静态页面是指 HTML 文件直接存放在服务器上,不依赖后端逻辑处理而生成内容。客户端浏览器请求静态页面时,服务器直接将文件发送到客户端,浏览器负责渲染页面。 特点: 固定内容&am…...
linux模拟试题
Linux 基础阶段考试笔试模拟试卷 审核人:王旺旺 一.填空题(每题 1 分,共 30 分) 1.验证 httpd 服务是否启动的命令是_______ 答:systemctl status httpd 或 netstat -anptl 或 ss -anpt 2.将目录 xxhf 下所有文件的所属组改为 user1 的命令是_______ 答:chown -R ,user1 …...
Android 使用OpenGLES + MediaPlayer 获取视频截图
概述 Android 获取视频缩略图的方法通常有: ContentResolver: 使用系统数据库MediaMetadataRetriever: 这个是android提供的类,用来获取本地和网络media相关文件的信息ThumbnailUtils: 是在android2.2(api8)之后新增的一个,该类为…...
典型的1553B网络
典型的1553B网络 1553B总线BUS A和BUS B是互为冗余的、完全对等、物理隔离的两个网络。每一个节点设备也配置有互为冗余的A、B两个1553B接口,分别接入BUS A和BUS B。系统完成初始化配置后,首先采用BUS A来通讯。工作过程中,如果发现BUS A的工…...
【C++】内存管理
【C】内存管理 一、C/C内存分布二、C语言中动态内存管理方式三、C内存管理方式1、new 和 delete 操作内置类型2、new 和 delete 操作自定义类型 四、operator new 和 operator delete 函数五、new 和 delete 的实现原理1、内置类型2、自定义类型3、new和delete不匹配的报错 六、…...
实现PDF文档加密,访问需要密码
01. 背景 今天下午老板神秘兮兮的来问我,能不能做个文档加密功能,就是那种用户下载打开需要密码才能打开的那种效果。boss都发话了,那必须可以。 需求:将 pdf 文档经过加密处理,客户下载pdf文档,打开文档需…...
常见排序算法总结 (三) - 归并排序与归并分治
归并排序 算法思想 将数组元素不断地拆分,直到每一组中只包含一个元素,单个元素天然有序。之后用归并的方式收集跨组的元素,最终形成整个区间上有序的序列。 稳定性分析 归并排序是稳定的,拆分数组时会自然地将元素分成有先后…...
文库 | 从嬴图的技术文档聊起
在技术的浩瀚海洋中,一份优秀的技术文档宛如精准的航海图。它是知识传承的载体,是团队协作的桥梁,更是产品成功的幕后英雄。然而,打造这样一份出色的技术文档并非易事。你是否在为如何清晰阐释复杂技术而苦恼?是否纠结…...
故障诊断 | Transformer-LSTM组合模型的故障诊断(Matlab)
效果一览 文章概述 故障诊断 | Transformer-LSTM组合模型的故障诊断(Matlab) 源码设计 %% 初始化 clear close all clc disp(此程序务必用2023b及其以上版本的MATLAB!否则会报错!) warning off %...
VScode离线下载扩展安装
在使用VScode下在扩展插件时,返现VScode搜索不到插件,网上搜了好多方法,都不是常规操作,解决起来十分麻烦,可以利用离线下载安装的方式安装插件!亲测有效!!! 1.找到VScod…...
【AI系统】昇腾异构计算架构 CANN
昇腾异构计算架构 CANN 本文将介绍昇腾 AI 异构计算架构 CANN(Compute Architecture for Neural Networks),这是一套为高性能神经网络计算需求专门设计和优化的架构。CANN 包括硬件层面的达芬奇架构和软件层面的全栈支持,旨在提供…...
云服务器重装系统后 一些报错与解决[ vscode / ssh / 子用户]
碰见的三个问题: 1.vscode连接失败 2.登录信息配置 3.新建子用户的一些设置 思考:遇见问题,第一反应 应该如何解决 目录 1. 错误 解决方法 原因 步骤 1:找到known_hosts文件并编辑 步骤 2:通过VSCode终端输入…...
架构设计之路,永无尽头
1. 插件式架构 2. SRP:单一职责原则 3. 链接加载器??? 4. 端口适配器架构 5. 六边形架构 6. MVC架构 7. 领域驱动架构 8. 敏捷开发 9. 打台球的时候每打一杆是为了下几杆,而不是为了打到洞中。 10. 画出一个图࿰…...
【AI系统】Ascend C 语法扩展
Ascend C 语法扩展 Ascend C 的本质构成其实是标准 C加上一组扩展的语法和 API。本文首先对 Ascend C 的基础语法扩展进行简要介绍,随后讨论 Ascend C 的两种 API——基础 API 和高阶 API。 接下来针对 Ascend C 的几种关键编程对象——数据存储、任务间通信与同步…...
驱动篇的开端
准备 在做之后的动作前,因为win7及其以上的版本默认是不支持DbgPrint(大家暂时理解为内核版的printf)的打印,所以,为了方便我们的调试,我们先要修改一下注册表 创建一个reg文件然后运行 Windows Registr…...
树莓派4B使用opencv读取摄像头配置指南
本文自己记录,给我们lab自己使用,其他朋友们不一定完全适配,请酌情参考。 一. 安装opecnv 我们的树莓派4B默认是armv7l架构,安装的miniconda最新的版本 Miniconda3-latest-Linux-armv7l.sh 仍然是python3.4几乎无法使用ÿ…...
【AI日记】24.12.03 kaggle 比赛 Titanic-6
【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】 工作 内容:学习 kaggle 入门比赛 Titanic - Machine Learning from Disaster时间:7 小时评估:继续 读书 书名:美丽新世界时间:1 小时阅读原因&…...
Linux中的常用基本指令(下)
Linux常用基本指令 Linux中的基本指令12.head指令13.tail指令简单解释重定向与管道(重要) 14.date指令(时间相关的指令)15.cal指令(不重要)16.find指令(灰常重要)17.grep指令(重要)18.which指令和alias指令19.zip/unzip指令:20.tar指令(重要&…...
python笔记3
复习及总结 python的软件安装及简单使用——python3.31 pycharm python的输出:print() 简单(直接)输出 print()输出到指定文件 fpopen(rC:\Users\M15R3\Desktop\1.txt,a) print("334…...