当前位置: 首页 > news >正文

深入探索KVM虚拟化技术:全面掌握虚拟机的创建与管理

文章目录

    • 安装KVM
      • 开启cpu虚拟化
      • 安装KVM
      • 检查环境是否正常
    • KVM图形化创建虚拟机
      • 上传ISO
      • 创建虚拟机
      • 加载镜像
      • 配置内存
      • 添加磁盘
      • 能否手工指定存储路径呢?
      • 创建成功
      • 安装完成
      • 查看虚拟机
    • KVM命令行创建虚拟机
      • 创建磁盘
      • 通过命令行创建虚拟机
      • 手动安装虚拟机
    • KVM命令行创建虚拟机-kickstart全自动安装
      • 使用Centos7生成cfg文件
      • 使用Centos8自动安装
      • 测试
    • KVM基本命令总结

安装KVM

开启cpu虚拟化

注意:务必开启虚拟机CPU虚拟化,否则无法嵌套虚拟机

在这里插入图片描述

不开启后期报错

在这里插入图片描述

安装KVM

配置yum源 --》安装KVM

[root@cloud ~]# mount /dev/cdrom /mnt/
mount: /mnt: WARNING: device write-protected, mounted read-only.
[root@cloud ~]# vim /etc/yum.repos.d/
[root@cloud ~]# vim /etc/yum.repos.d/
bak/        cloud.repo  
[root@cloud ~]# vim /etc/yum.repos.d/cloud.repo 
[root@cloud ~]# yum clean all
14 files removed
[root@cloud ~]# yum repolist  all
repo id                    repo name                   status
AppStream                  AppStream                   enabled
BaseOS                     BaseOS                      enabled
[root@cloud ~]# yum grouplist 
AppStream                     316 MB/s | 5.7 MB     00:00    
BaseOS                        455 MB/s | 2.2 MB     00:00    
Available Environment Groups:ServerMinimal InstallWorkstationCustom Operating System
Installed Environment Groups:Server with GUIVirtualization Host
Installed Groups:Container ManagementHeadless Management
Available Groups:.NET Core DevelopmentRPM Development ToolsDevelopment ToolsGraphical Administration ToolsLegacy UNIX CompatibilityNetwork ServersScientific SupportSecurity ToolsSmart Card SupportSystem Tools[root@cloud ~]# yum groupinstall -y "Virtualization*"   ### 安装的软件包组
Last metadata expiration check: 0:01:01 ago on Sat 05 Aug 2023 03:08:26 PM CST.
No match for group package "insights-client"
No match for group package "centos-release-eula"
Dependencies resolved.
==============================================================Package      Arch   Version                  Repo       Size
==============================================================
Installing group/module packages:virt-install noarch 2.2.1-3.el8              AppStream  99 kvirt-top     x86_64 1.0.8-32.el8             AppStream 729 kvirt-viewer  x86_64 7.0-9.el8                AppStream 397 kvirt-who     noarch 0.27.6-1.el8             AppStream 247 k
Installing dependencies:python3-suds noarch 0.7-0.8.94664ddd46a6.el8 AppStream 242 k
Installing Environment Groups:Virtualization HostInstalling Groups:Virtualization HypervisorVirtualization PlatformVirtualization ClientVirtualization ToolsBase                                                        Core                                                        Standard                                                    Transaction Summary
==============================================================
Install  5 PackagesTotal size: 1.7 M
Installed size: 6.2 M
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transactionPreparing        :                                      1/1 Installing       : python3-suds-0.7-0.8.94664ddd46a6.   1/5 Installing       : virt-who-0.27.6-1.el8.noarch         2/5 Running scriptlet: virt-who-0.27.6-1.el8.noarch         2/5 Installing       : virt-viewer-7.0-9.el8.x86_64         3/5 Installing       : virt-top-1.0.8-32.el8.x86_64         4/5 Installing       : virt-install-2.2.1-3.el8.noarch      5/5 Running scriptlet: virt-install-2.2.1-3.el8.noarch      5/5 Verifying        : python3-suds-0.7-0.8.94664ddd46a6.   1/5 Verifying        : virt-install-2.2.1-3.el8.noarch      2/5 Verifying        : virt-top-1.0.8-32.el8.x86_64         3/5 Verifying        : virt-viewer-7.0-9.el8.x86_64         4/5 Verifying        : virt-who-0.27.6-1.el8.noarch         5/5 
Installed products updated.Installed:python3-suds-0.7-0.8.94664ddd46a6.el8.noarch                virt-install-2.2.1-3.el8.noarch                             virt-top-1.0.8-32.el8.x86_64                                virt-viewer-7.0-9.el8.x86_64                                virt-who-0.27.6-1.el8.noarch                                Complete!

可以通过桌面化图标打开或者命令行

[root@cloud ~]# virt-manager

在这里插入图片描述

检查环境是否正常

在这里插入图片描述

[root@cloud ~]# ifconfig 
ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.129.141  netmask 255.255.255.0  broadcast 192.168.129.255inet6 fe80::4b45:520e:3195:48b4  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:9b:91:4d  txqueuelen 1000  (Ethernet)RX packets 339  bytes 60656 (59.2 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 201  bytes 23207 (22.6 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536inet 127.0.0.1  netmask 255.0.0.0inet6 ::1  prefixlen 128  scopeid 0x10<host>loop  txqueuelen 1000  (Local Loopback)RX packets 48  bytes 4080 (3.9 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 48  bytes 4080 (3.9 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
### 有正常
virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255ether 52:54:00:bd:e4:f0  txqueuelen 1000  (Ethernet)RX packets 0  bytes 0 (0.0 B)RX errors 0  dropped 0  overruns 0  frame 0TX packets 0  bytes 0 (0.0 B)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

KVM图形化创建虚拟机

上传ISO

在这里插入图片描述

创建虚拟机

在这里插入图片描述

加载镜像

在这里插入图片描述

配置内存

在这里插入图片描述

添加磁盘

在这里插入图片描述

在这里插入图片描述

能否手工指定存储路径呢?

在指定的路径下首先创建虚拟机所用的磁盘

添加物理磁盘 --> 分区 --> 格式化 --> 挂载 --> 创建磁盘

[root@cloud /]# fdisk /dev/nvme0n2Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.Command (m for help): n
Partition typep   primary (0 primary, 0 extended, 4 free)e   extended (container for logical partitions)
Select (default p): Using default response p.
Partition number (1-4, default 1): 
First sector (2048-41943039, default 2048): 
Last sector, +sectors or +size{K,M,G,T,P} (2048-41943039, default 41943039): Created a new partition 1 of type 'Linux' and of size 20 GiB.
Partition #1 contains a LVM2_member signature.Do you want to remove the signature? [Y]es/[N]o: p
Do you want to remove the signature? [Y]es/[N]o: yThe signature will be removed by a write command.Command (m for help): p
Disk /dev/nvme0n2: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x87cd3c01Device         Boot Start      End  Sectors Size Id Type
/dev/nvme0n2p1       2048 41943039 41940992  20G 83 LinuxFilesystem/RAID signature on partition 1 will be wiped.Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.[root@cloud /]# mkfs.xfs /dev/nvme0n2p1
meta-data=/dev/nvme0n2p1         isize=512    agcount=4, agsize=1310656 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=1        finobt=1, sparse=1, rmapbt=0=                       reflink=1
data     =                       bsize=4096   blocks=5242624, imaxpct=25=                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2=                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0[root@cloud /]# mkdir /kvm
[root@cloud /]# cd kvm/
### qcow2为磁盘格式
[root@cloud kvm]# qemu-img create -f qcow2 /kvm/centos1.qcow2 20g
Formatting '/kvm/centos1.qcow2', fmt=qcow2 size=21474836480 cluster_size=65536 lazy_refcounts=off refcount_bits=16
[root@cloud kvm]# ls
centos1.qcow2

在这里插入图片描述

在这里插入图片描述

创建成功

在这里插入图片描述

安装完成

在这里插入图片描述

在这里插入图片描述

查看虚拟机

[root@cloud ~]# virsh list Id    Name                           State
----------------------------------------------------3     centos7.0-2                    running

KVM命令行创建虚拟机

创建磁盘

[root@cloud kvm]# qemu-img create -f qcow2 /kvm/os1.qcow2 20g
Formatting '/kvm/os1.qcow2', fmt=qcow2 size=21474836480 cluster_size=65536 lazy_refcounts=off refcount_bits=16[root@cloud kvm]# ls
os1.qcow2### 之后,通过图形化创建虚拟机的时候可以选择刚才手工创建的存储磁盘 centos701.qcow2

通过命令行创建虚拟机

### 其实就是把前面图形化点击的步骤转换成了命令行操作。
[root@cloud kvm]# virt-install \
> --name centos702 \
> --memory 2048 \
> --vcpus 1 \
> --disk path=/kvm/os1.qcow2 \
> --location /data/CentOS-7-x86_64-DVD-2009.iso \
> --network network=default \
> --noautoconsoleStarting install...
Retrieving file vmlinuz...                                                                             | 6.5 MB  00:00:00     
Retrieving file initrd.img...                                                                          |  53 MB  00:00:00     
Domain installation still in progress. You can reconnect to 
the console to complete the installation process.### 创建成功
[root@cloud kvm]# virsh listId    Name                           State
----------------------------------------------------3     centos7.0-2                    running4     centos702                      running

手动安装虚拟机

在这里插入图片描述


KVM命令行创建虚拟机-kickstart全自动安装

注意:CentOS 8 版本是没有 kickstart 工具的,可以使用 CentOS 7 版本生成配置文件给 8 版本使用。

使用Centos7生成cfg文件

  • yum install -y system-config-kickstart.noarch --安装工具
  • system-config-kickstart --启动工具,注意禁用udev命名规则 net.ifnames=0 biosdevname=0

进行配置,最后导出 xxx.cfg 文件

  • yum install -y httpd --安装apache
  • systemctl start httpd --启动apache服务,注意关闭防火墙
  • 将工具生成好的配置文件保存。
### 关闭防火墙
[root@cloud html]# systemctl stop firewalld.service        ###  临时关闭
[root@cloud html]# systemctl disable firewalld.service     ### 禁止启用
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.[root@cloud ~]# yum install -y httpd    ### 安装httpd
[root@cloud ~]# systemctl start httpd   ### 开启服务
[root@cloud ~]# cd /var/www/html/       ### 开启服务后,会自动生成目录 /var/www/html/
[root@cloud html]# mv /data/ks01.cfg .  ### 将centos7通过工具生成的cfg文件放到html目录下
[root@cloud html]# ls
ks01.cfg### 使用虚拟机 ip + 目录文件 直接访问
# 例如 http://192.168.129.141/ks01.cfg

使用Centos8自动安装

### 创建磁盘
[root@cloud html]# qemu-img create -f qcow2 /kvm/centos703.qcow2 20g
Formatting '/kvm/centos703.qcow2', fmt=qcow2 size=21474836480 cluster_size=65536 lazy_refcounts=off refcount_bits=16[root@cloud html]# ls /kvm/
centos703.qcow2  os1.qcow2### 如果有错误,会在安装过程中卡住
[root@cloud ~]# virt-install \
> --name centos703 \                       ### 虚拟机名称
> --memory 2048 \                          ### 内存
> --vcpus 1 \                              ### cpu
> --disk path=/kvm/centos703.qcow2 \       ### 磁盘
> --location /data/CentOS-7-x86_64-DVD-2009.iso \  ### 镜像
> --network network=default \                      ### 网络
> --noautoconsole \
> -x ks=http://192.168.129.141/ks/ks01.cfg    ### 也可以使用本地文件 ks=/data/ks01.cfgStarting install...
Retrieving file vmlinuz...                                       | 6.5 MB  00:00:00     
Retrieving file initrd.img...                                    |  53 MB  00:00:00     
Domain installation still in progress. You can reconnect to 
the console to complete the installation process.### 使用本地文件,二选其一即可
[root@cloud ~]# virt-install --name centos703 --memory 2048 --vcpus 1 --disk path=/kvm/centos703.qcow2 --location /data/CentOS-7-x86_64-DVD-2009.iso --network network=default --noautoconsole -x ks=/data/ks01.cfg####  之后即可使用图形化界面进行查看自动化安装

有个问题?虽然是通过命令行可以进行全自动安装,但是因为有图形化界面,所以便于观察虚拟机的具体信息。如果没有图形化界面呢?安装过程及安装完成后根本不知道虚拟机的ip地址,也不知道进行到哪一步了,这时候怎么办?

在kickstart文件中添加 console=ttyS0

bootloader --append=“net.ifnames=0 biosdevname=0 console=ttyS0” --location=mbr

并通过 virsh console xxx 方式连接到虚拟机里面,相当于插上了一根console线。

### 添加 console=ttyS0
[root@cloud ~]# vim /data/ks01.cfg
...
# System timezone
timezone Asia/Shanghai
# System bootloader configuration
# bootloader --append="net.ifnames=0 biosdevname=0" --location=mbr
bootloader --append="net.ifnames=0 biosdevname=0 console=ttyS0" --location=mbr
# Clear the Master Boot Record
zerombr
....[root@cloud ~]# qemu-img create -f qcow2 /kvm/os333.qcow2 20g[root@cloud ~]# virt-install --name centos705 --memory 2048 --vcpus 1 --disk path=/kvm/os333.qcow2 --location /data/CentOS-7-x86_64-DVD-2009.iso --network network=default --noautoconsole -x ks=/data/ks01.cfgStarting install...
Retrieving file vmlinuz...                                       | 6.5 MB  00:00:00     
Retrieving file initrd.img...                                    |  53 MB  00:00:00     
Domain installation still in progress. You can reconnect to 
the console to complete the installation process.[root@cloud ~]# virsh console centos705
Connected to domain centos705
Escape character is ^]CentOS Linux 7 (Core)
Kernel 3.10.0-957.el7.x86_64 on an x86_64localhost login: root
Password: ### ctrl + ] 退出

如果安装文件中没有加入,也可在后续虚拟机中加入

[root localhost ]# cd /etc/def auu lt/
[root localhost default]# ls
grub   nss    useradd
[root localhost default]# vi grub a
GRUB TIMEOUT=5
GRUB DISTRIBUTOR="S(sed 's, release .*5, ,g'’/etc/system-re lease )"
GRUB DEFAULT-saved
GRUB DISABLE SUBMENU=true
GRUB_ TERMINAL OUTPUT="'conso le'
# GRUB CMDL INE L INUX= crashkerne l=auto rd . lum. lu=centos/root rd. lum. lu=centos/swap rhgb quiet" 
### 加入到此处 console=ttyS0
GRUB CMDL INE L INUX= crashkerne l=auto rd . lum. lu=centos/root rd. lum. lu=centos/swap rhgb quiet console=ttyS0"
GRUB_ DISABLE RECOUERY="'true"[root localhost default]# grub2-mkconfig -o /boot/grub2/grub.cfg
[root localhost default]# reboot

测试

[root@cloud ~]# virsh console centos7.0 
Connected to domain centos7.0
Escape character is ^]CentOS Linux 7 (Core)
Kernel 3.10.0-1160.el7.x86_64 on an x86_64localhost login: root
Password: 
Last login: Sat Aug  5 06:42:12 on tty1
[root@localhost ~]# 

KVM基本命令总结

[root@cloud ~]# virsh --help              查看帮助
[root@cloud ~]# virsh list --all          列出所有虚拟机(包括正在运行的和关闭的)
[root@cloud ~]# virsh list                列出所有虚拟机(仅运行中的)
[root@cloud ~]# virsh start centos705     --启动虚拟机
[root@cloud ~]# virsh shutdown centos705  -- 关闭虚拟机
[root@cloud ~]# virsh reboot centos705    --重启虚拟机### 如果虚拟机关不了,强制关闭,非正常关闭
[root@cloud ~]# virsh destroy centos705
### 清除配置
[root@cloud ~]# virsh undefine centos705# 移除软件包
[root@localhost ~]# yum groupremove -y "Virtualization*"
[root@localhost ~]# rpm -qa | grep virtualization
[root@localhost ~]# systemctl list-units | grep virtualization
[root@localhost ~]# lsmod | grep virtualization

相关文章:

深入探索KVM虚拟化技术:全面掌握虚拟机的创建与管理

文章目录 安装KVM开启cpu虚拟化安装KVM检查环境是否正常 KVM图形化创建虚拟机上传ISO创建虚拟机加载镜像配置内存添加磁盘能否手工指定存储路径呢&#xff1f;创建成功安装完成查看虚拟机 KVM命令行创建虚拟机创建磁盘通过命令行创建虚拟机手动安装虚拟机 KVM命令行创建虚拟机-…...

javaee springMVC model的使用

项目结构图 pom依赖 <?xml version"1.0" encoding"UTF-8"?><project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org…...

Spring与Docker:如何容器化你的Spring应用

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…...

试图替代 Python 的下一代AI编程语言:Mojo

文章目录 为什么叫 Mojo &#xff1f;Python 家族的一员&#xff0c;MojoPython 的好处&#xff1a;Python 兼容性Python 的问题移动和服务器部署&#xff1a;Python 子集和其他类似 Python 的语言&#xff1a; Mojo 是一种创新的编程语言&#xff0c;结合了 Python 的可用性和…...

【数据结构】栈、队列和数组

栈、队列和数组 栈队列数组数组的顺序表示和实现顺序表中查找和修改数组元素 矩阵的压缩存储特殊矩阵稀疏矩阵 栈 初始化 #define MaxSize 50//栈中元素的最大个数 typedef char ElemType;//数据结构 typedef struct{int top;//栈顶指针ElemType data[MaxSize];//存放栈中的元…...

python算法调用方案

1、python算法部署方案 &#xff08;1&#xff09;独立部署 算法端和应用端各自独立部署。 使用WSGI&#xff08;flask&#xff09;web应用A包装算法&#xff0c;并发布该应用A。 应用端B 通过httpclient调用算法应用A中的api接口。 &#xff08;2&#xff09;统一部署 算法…...

《微服务架构设计模式》第二章

文章目录 微服务架构是什么软件架构是什么软件架构的定义软件架构的41视图模型为什么架构如此重要 什么是架构风格分层式架构风格六边形架构风格微服务架构风格什么是服务什么是松耦合共享类库的角色 为应用程序定义微服务架构识别操作系统根据业务能力进行拆分业务能力定义了一…...

taro vue3 ts nut-ui 项目

# 使用 npm 安装 CLI $ npm install -g tarojs/cli 查看 Taro 全部版本信息​ 可以使用 npm info 查看 Taro 版本信息&#xff0c;在这里你可以看到当前最新版本 npm info tarojs/cli 项目初始化​ 使用命令创建模板项目&#xff1a; taro init 项目名 taro init myApp …...

【群答疑】jmeter关联获取上一个请求返回的字符串,分割后保存到数组,把数组元素依次作为下一个请求的入参...

一个非常不错的问题&#xff0c;来检验下自己jmeter基本功 可能有同学没看懂题&#xff0c;这里再解释一下&#xff0c;上面问题需求是&#xff1a;jmeter关联获取上一个请求返回的字符串&#xff0c;分割后保存到数组&#xff0c;把数组元素依次作为下一个请求的入参 建议先自…...

Shell 函数详解(函数定义、函数调用)

Shell 函数的本质是一段可以重复使用的脚本代码&#xff0c;这段代码被提前编写好了&#xff0c;放在了指定的位置&#xff0c;使用时直接调取即可。 Shell 中的函数和C、Java、Python、C# 等其它编程语言中的函数类似&#xff0c;只是在语法细节有所差别。 Shell 函数定义的语…...

git-命令行显示当前目录分支

1. 打开家目录.bashrc隐藏文件&#xff0c;找到如下内容 forlinxubuntu:~$ vi ~/.bashrcif [ "$color_prompt" yes ]; thenPS1${debian_chroot:($debian_chroot)}\[\033[01;32m\]\u\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ elsePS1${debian_chroot:($debi…...

pgsql 报错 later table “drop column” is not supported now

报错 使用pgsql执行下面的SQL报错 alter table test_user drop clolumn name;报错信息&#xff1a; later table “drop column” is not supported now。 报错原因 hologres pgsql的数据库&#xff1a; 删除列目前还是灰度测试阶段&#xff0c;需要在sql前加上set hg_ex…...

如何制定私域流量布局计划?

01 确定目标用户群体 首先&#xff0c;明确目标用户是私域流量布局的基础。可以通过市场调研、用户画像和数据分析等方式&#xff0c;了解目标用户的年龄、性别、兴趣爱好等特征&#xff0c;为后续精准营销奠定基础。 02 选择合适的私域流量渠道 根据目标用户群体的特点&…...

yolov8 模型部署--TensorRT部署-c++服务化部署

写目录 yolov8 模型部署--TensorRT部署1、模型导出为onnx格式2、模型onnx格式转engine 部署 yolov8 模型部署–TensorRT部署 1、模型导出为onnx格式 如果要用TensorRT部署YOLOv8&#xff0c;需要先使用下面的命令将模型导出为onnx格式&#xff1a; yolo export modelyolov8n.p…...

自适应迭代扩展卡尔曼滤波算法AIEKF估计SOC VS 扩展卡尔曼估计SOC

自适应迭代扩展卡尔曼滤波算法&#xff08;AIEK&#xff09; 自适应迭代扩展卡尔曼滤波算法&#xff08;AIEK&#xff09;是一种滤波算法&#xff0c;其目的是通过迭代过程来逐渐适应不同的状态和环境&#xff0c;从而优化滤波效果。 该算法的基本思路是在每一步迭代过程中&a…...

2023-亲测有效-git clone失败怎么办?用代理?加git?

git 克隆不下来&#xff0c;超时 用以下格式&#xff1a; git clone https://ghproxy.com/https://github.com/Tencent/ncnn.git 你的网站前面加上 https://ghproxy.com/ 刷的一下就下完了&#xff01;&#xff01;...

An Empirical Study of GPT-3 for Few-Shot Knowledge-Based VQA

本文是LLM系列文章&#xff0c;针对《An Empirical Study of GPT-3 for Few-Shot Knowledge-Based VQA》的翻译。 GPT-3对基于小样本知识的VQA的实证研究 摘要引言相关工作方法OK-VQA上的实验VQAv2上的实验结论 摘要 基于知识的视觉问答&#xff08;VQA&#xff09;涉及回答需…...

2023高教社杯数学建模B题思路分析 - 多波束测线问题

# 1 赛题 B 题 多波束测线问题 单波束测深是利用声波在水中的传播特性来测量水体深度的技术。声波在均匀介质中作匀 速直线传播&#xff0c; 在不同界面上产生反射&#xff0c; 利用这一原理&#xff0c;从测量船换能器垂直向海底发射声波信 号&#xff0c;并记录从声波发射到…...

02-docker network

Docker网络 Docker网络是什么 Docker 网络是 Docker 容器之间进行通信和连接的网络环境。在 Docker 中&#xff0c;每个容器都有自己的网络命名空间&#xff0c;这意味着每个容器都有自己的网络接口、IP 地址和网络配置 Docker网络启动后&#xff0c;会在宿主机中建立一个名…...

栈和队列经典笔试题

文章目录 栈和队列的回顾&#x1f4bb;栈&#x1fa73;队列&#x1f45f; 栈和队列经典笔试题&#x1f50b;有效的括号&#x1f3b8;用队列实现栈 &#x1f56f;用栈实现队列&#x1f52d;设计循环队列&#x1f9fc; 安静的夜晚 你在想谁吗 栈和队列的回顾&#x1f4bb; 栈&am…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 &#xff08;一&#xff09;实时滤波与参数调整 基础滤波操作 60Hz 工频滤波&#xff1a;勾选界面右侧 “60Hz” 复选框&#xff0c;可有效抑制电网干扰&#xff08;适用于北美地区&#xff0c;欧洲用户可调整为 50Hz&#xff09;。 平滑处理&…...

vue3 字体颜色设置的多种方式

在Vue 3中设置字体颜色可以通过多种方式实现&#xff0c;这取决于你是想在组件内部直接设置&#xff0c;还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法&#xff1a; 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...

C++.OpenGL (10/64)基础光照(Basic Lighting)

基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...

Axios请求超时重发机制

Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式&#xff1a; 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

k8s业务程序联调工具-KtConnect

概述 原理 工具作用是建立了一个从本地到集群的单向VPN&#xff0c;根据VPN原理&#xff0c;打通两个内网必然需要借助一个公共中继节点&#xff0c;ktconnect工具巧妙的利用k8s原生的portforward能力&#xff0c;简化了建立连接的过程&#xff0c;apiserver间接起到了中继节…...

爬虫基础学习day2

# 爬虫设计领域 工商&#xff1a;企查查、天眼查短视频&#xff1a;抖音、快手、西瓜 ---> 飞瓜电商&#xff1a;京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空&#xff1a;抓取所有航空公司价格 ---> 去哪儿自媒体&#xff1a;采集自媒体数据进…...

JAVA后端开发——多租户

数据隔离是多租户系统中的核心概念&#xff0c;确保一个租户&#xff08;在这个系统中可能是一个公司或一个独立的客户&#xff09;的数据对其他租户是不可见的。在 RuoYi 框架&#xff08;您当前项目所使用的基础框架&#xff09;中&#xff0c;这通常是通过在数据表中增加一个…...

视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)

前言&#xff1a; 最近在做行为检测相关的模型&#xff0c;用的是时空图卷积网络&#xff08;STGCN&#xff09;&#xff0c;但原有kinetic-400数据集数据质量较低&#xff0c;需要进行细粒度的标注&#xff0c;同时粗略搜了下已有开源工具基本都集中于图像分割这块&#xff0c…...

嵌入式学习笔记DAY33(网络编程——TCP)

一、网络架构 C/S &#xff08;client/server 客户端/服务器&#xff09;&#xff1a;由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序&#xff0c;负责提供用户界面和交互逻辑 &#xff0c;接收用户输入&#xff0c;向服务器发送请求&#xff0c;并展示服务…...

GO协程(Goroutine)问题总结

在使用Go语言来编写代码时&#xff0c;遇到的一些问题总结一下 [参考文档]&#xff1a;https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现&#xff1a; 今天在看到这个教程的时候&#xff0c;在自己的电…...