Docker平台搭建方法
Docker平台搭建方法
1.1在VMware中创建两个虚拟机,只需要1个网卡,连接192.168.200.0网络。
虚拟机分配2个CPU,2G内存,60G硬盘,主机名分别为server和client,IP地址分别为192.168.200.137和192.168.200.138。server节点还兼做registry节点,即镜像仓库节点。在2017年的比赛中,server节点和registry节点是分开的。
一.1修改主机名,配置主机名解析文件
[root@localhost ~]# hostnamectl set-hostname server
二.2修改/etc/hosts文件,设置主机名和IP地址的映射关系
[root@controller ~]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.100.137 server
192.168.100.138 client
二.3配置防火墙
要关闭防火墙,只需要停止firewalld服务,并设置其开机不启动
[root@controller ~]#systemctl stop firewalld
[root@controller ~]#systemctl disable firewalld
Removed symlink/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
二.4设置SELINUX
SELINUX有3种模式:强制模式(enforcing)、许可模式(permissive)和禁用模式(disabled)
这就需要修改/etc/selinux/config文件,将原来的SELINUX=enforcing修改为SELINUX=permissive
[root@controller ~]# vi /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=permissive
# SELINUXTYPE= can take one of three two values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
1.2配置yum源
部署PaaS平台的时候,需要用yum安装Docker。在不能访问Internet的情况下,必须配置本地Yum源。
(1)上传光盘镜像文件
用SecureFX将PC上的CentOS-7-x86_64-DVD-1511.iso和XianDian-PaaS-v2.1.iso上传到server节点的/opt目录
(2)[root@controller ~]# setenforce 0
[root@controller ~]# sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: permissive
Mode from config file: permissive
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 28
(3)用 ls/opt查看这两个文件
[root@controller ~]# ls /opt
CentOS-7-x86_64-DVD-1511.iso XianDian-IaaS-v2.1.iso
(4)创建挂载点,挂载光盘镜像文件
# cd /opt
# mkdir centos paas
# mount -o loop CentOS-7-x86_64-DVD-1511.iso centos
# mount -o loop XianDian-PaaS-v2.1.iso paas
(5)配置server节点的repo文件
删除/etc/yum.repos.d/目录中原来所有的文件,并新建一个文件local.repo,输入以下内容:
[centos]
name=centos
baseurl=file:///opt/centos
enabled=1
gpgcheck=0
[paas]
name=paas
baseurl=file:///opt/paas/docker
enabled=1
gpgcheck=0
修改好之后,用yum clean all命令清空yum缓冲区,并用yum list命令确认本地yum源配置正确。
# yum clean all
# yum install vsftpd
(6)安装配置vsftpd
修改/etc/vsftpd/vsftpd.conf文件,增加一行 anon_root=/opt。修改之后,启动vsftpd并设置开机启动。
# systemctl start vsftpd
# systemctl enable vsftpd
(7)配置client节点的repo文件
删除/etc/yum.repos.d/目录中原来所有的文件,并新建一个文件docker.repo,输入以下内容(假设server节点的浮动IP地址是192.168.200.137):
[centos]
name=centos
baseurl=ftp://192.168.200.137/centos
enabled=1
gpgcheck=0
[paas]
name=paas
baseurl=ftp://192.168.200.137/paas/docker
enabled=1
gpgcheck=0
修改好之后,用yum clean all命令清空yum缓冲区,并用yum list命令确认本地yum源配置正确。
1.3删除防火墙规则
每个节点都要做,两个节点的操作是一样的
# iptables -F
# iptables -X
# iptables -Z
# iptables-save
1.4打开内核转发功能
每个节点都要做,两个节点的操作是一样的。修改/etc/sysctl.conf文件,添加以下内容:
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.all.rp_filter = 0
然后执行以下命令让修改生效
# sysctl –p
1.5安装docker
两个节点都要安装,操作是完全一样的。
(1)安装docker-io软件包
# yum -y install docker-io
(2)修改docker配置文件,所有节点配置/etc/sysconfig/docker文件修改如下配置:
ADD_REGISTRY='--add-registry 192.168.200.137:5000'
INSECURE_REGISTRY='--insecure-registry 192.168.200.137:5000'
这里的IP地址就是registry节点的浮动IP地址,请根据实际情况填写。
(3)启动docker并设置开机启动
#systemctl start docker
#systemctl enable docker
解释:
以上是部署Docker运行环境。如果不需要建立自己的镜像仓库,第2步还可以省略。可见,部署Docker 运行环境的操作是非常简单的。Docker的优势之一就是简单,只要部署好环境,然后下载所需的镜像并用这个镜像运行一个容器就可以了,服务器本身不需要安装额外的软件。比如说,我们需要一个MySQL数据库服务器,只需要下载MySQL镜像并用这个镜像运行容器,而不是在本机安装MySQL。如果不需要这个服务了,只要把容器停掉,然后把镜像删除。在一台物理服务器(或者云主机)上,可以轻而易举地运行成百上千个容器。在同样的环境下,要想运行这么多虚拟机是不可能的。容器技术是一种轻量级的虚拟化技术,消耗的资源远小于传统的虚拟机。
上述第2步操作,是为了能够让Docker能够使用本地镜像仓库(registry)。Docker默认从官方的软件仓库下载镜像,但由于各种原因,国内用户下载速度很慢甚至无法下载。在这种情况下,就需要在本地创建私有的镜像仓库。在Docker配置文件中,添加ADD_REGISTRY='--add-registry 192.168.200.137:5000',就是告诉Docker,除了从官方镜像仓库下载之外,还可以从IP地址为192.168.200.137的服务器上下载,服务的端口号是5000。由于私有软件仓库是没有经过官方认证的,Docker会认为它不安全而拒绝下载。在配置文件中添加INSECURE_REGISTRY='--insecure-registry 192.168.200.137:5000',Docker就不会拒绝从这个镜像仓库下载镜像。
1.6创建本地镜像仓库
这一步,只在server节点操作。
(1)将当前目录切换到registry_latest.tar所在的目录,导入镜像仓库的镜像
#cd /opt/paas/images/rancher1.6.5/
#docker load < registry_latest.tar
(2)查看registry的本地镜像,记下它的Image Id(假设是c9bd19d022f6)
#docker images
(3)为registry的本地镜像打上标签
#docker tag c9bd19d022f6 192.168.200.137:5000/registry:latest
(4)运行registry容器
# docker run -d -p 5000:5000 --restart=always --name=registry 192.168.200.137:5000/registry:latest
(5)上传镜像
#docker push 192.168.200.137:5000/registry:latest
解释:
要建立镜像仓库,需要一个名为registry的镜像,用这个镜像运行一个容器,就能够对外提供镜像仓库服务了。在有网络的情况下,只要用docker pull registry就能从官方镜像仓库下载registry。在没有网络的情况下,操作就稍微复杂一点。首先需要在本地有一个registry的打包文件registry_latest.tar,用docker load < registry_latest.tar命令加载。加载之后,为了便于管理,最好给它打一个比较直观的标记。标记的格式,通常是
软件仓库名:端口号/镜像名:版本号
例如这个registry镜像,它的标记就是192.168.200.137:5000/registry:latest。
这样做的目的,就是便于用户一眼看出来,这个镜像是从哪个软件仓库下载的,镜像叫什么名字,版本号是什么。例如看上面这个标记,我们就知道软件仓库位于IP地址为192.168.200.137的服务器。事实上,这个标记是给人看的,而不是给机器看的。
做标记的命令的格式是:
docker tag 镜像的ID 标记
例如:docker tag c9bd19d022f6 192.168.200.137:5000/registry:latest,其中c9bd19d022f6就是registry镜像的ID,后面接镜像的标记。
接下来的操作,就是要用registry镜像来运行一个容器,命令格式是:
docker run [选项] 镜像 [命令] [参数...]
运行registry容器的命令是:
# docker run -d -p 5000:5000 --restart=always --name=registry 192.168.200.137:5000/registry:latest
这条命令包含多个选项:
-d 表示在后台运行,如果没有这个选项,容器运行之后就会退出;
-p 5000:5000 用于设置端口映射,冒号前面是主机上的端口号,冒号后面是容器内部的端口号。-p 5000:5000表示将容器内部的5000端口映射到主机(也就是运行容器的这台服务器)上的5000端口。容器内部的端口是不能直接被外部访问的,需要映射到主机的端口上,才能被外部访问。
--restart=always表示容器退出时会自动重启
--name=registry 用于设置容器的名字。如果不指定名字,docker会随机给容器设置一个名字。
最后的192.168.200.137:5000/registry:latest就是我们用来运行容器的镜像。
有两个概念,我们要注意区别:镜像和容器。镜像本质上就是存放在磁盘上的一个文件,它是静态的。在docker环境下,让它在内存里运行起来了,才叫容器。
1.7 初试Docker
为了便于同学们理解Docker的优势,我们尝试在Client节点上部署一个Nginx容器,用于对外提供WEB服务。
(1)在registry节点上传nginx镜像。
# cd /opt/paas/docker_images
# docker load < nginx_latest.tar
Load之后,用docker images命令看一下镜像的ID。然后用docker tag命令打上标签,最后再用docker push命令将镜像上传到registry。
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> latest 3f8a4339aadd 13 months ago 231.3 MB
192.168.200.137:5000/registry latest c9bd19d022f6 19 months ago 33.27 MB
docker.io/registry latest c9bd19d022f6 19 months ago 33.27 MB
# docker tag 3f8a4339aadd 192.168.200.137:5000/nginx:latest
# docker push 192.168.200.137:5000/nginx:latest
(2) 在client节点下载nginx镜像(这一步实际上可以不错,如果本地没有所需镜像,会自动去pull)
# docker pull 192.168.200.137:5000/nginx:latest
Trying to pull repository 192.168.200.137:5000/nginx ...
latest: Pulling from 192.168.200.137:5000/nginx
75a822cd7888: Pull complete
0aefb9dc4a57: Pull complete
046e44ee6057: Pull complete
833f560bc326: Pull complete
Digest: sha256:6553bb0f5057f7414caca83f05add6866d71fb22ba4655a1298a013e1d8befe1
Status: Downloaded newer image for 192.168.200.137:5000/nginx:latest
(3)在client节点创建网页目录并创建一个测试网页
# mkdir /var/www
# vi /var/www/index.html
编辑/var/www/index.html文件,创建一个简单的网页,例如:
| <html> <head> <title>Hello</title> </head> <body> <p>Hello,World!</p> </body> </html> |
(4) 在client节点上运行容器,测试
# docker run -itd -p 80:80 -v /var/www:/usr/share/nginx/html --name=nginx --restart=always 192.168.200.137:5000/nginx:latest
在PC上用浏览器浏览192.168.200.138(也就是client节点的IP地址),即可看到网页内容。
1.8上传镜像
用上面的“load、tag、push三步曲”,将/opt/paas/images/rancher1.6.5目录中其镜像包上传。如果还需要运行其他容器,则需再上传相应的镜像。若要部署其他应用,所需的镜像包在/opt/paas/images/目录中,可根据需要上传。
解释:
在部署应用的时候,需要用到一系列的镜像。这些镜像都是以.tar打包文件的形式提供的,我们要用前面的方法,逐个加载,打标记,然后上传到镜像仓库中。
1.9部署Rancher管理平台
(1)运行rancher server容器
# docker run -d -p 80:8080 --restart=always \
192.168.200.137:5000/rancher/server:v1.6.5
(由于这条命令比较长,一行写不下,可以写一部分然后用“\”符号结束一行,敲回车另起一行。这是Linux中的惯例。当然,不分行也是可以的)
(4)访问rancher server的WEB页面
稍等片刻,在PC上启动浏览器,打开http://192.168.200.137页面。

如果rancher server已经正确部署,将可以看到上述页面。
解释:
有了镜像仓库之后,需要部署什么应用就去镜像仓库下载(通常说“拉取”或直接说英文pull)相关的镜像。一些复杂的应用,可能需要下载多个镜像。容器运行起来之后,还需要进行一系列的配置操作,例如设置容器节点之间的互连。在大规模部署的时候,“纯手工”操作的工作量将会非常大。Rancher是一个容器云平台管理工具,利用Rancher,可以实现应用的“一键部署”,能够大幅度提高工作效率。在一个云平台上,只需要一个节点部署Rancher Server就够了,其他节点只要加入到Rancher Server的的基础架构(INFRASTRUCTURE)中,就能被Rancher Server,可以很方便地在这些节点上部署各种应用。
要部署Rancher,首先要在Server节点下载Rancher Server镜像,也就是在在创建本地镜像仓库时上传的192.168.200.137:5000/rancher/server:v1.6.5。将镜像下载到本地之后,用docker run命令运行:
#docker run -d -p 80:8080 --restart=always 192.168.200.137:5000/rancher/server:v1.6.5
在这条命令中,用 -p 80:8080选项将容器内部的8080端口映射到server主机的80端口。
80端口就是http协议默认的端口。所以在浏览器里输入http://192.168.200.137,就能访问Rancher Server的WEB用户界面。
1.10准备client节点
在后续的操作中,要将应用部署在client节点上。为此,我们需要进行一些准备:
在rancher server的WEB页面,点击“INFRASTRUCTURE”->“Hosts”。第一次使用,会要求设置Host Registration URL(中文界面则显示“主机注册URL”)。这里可以采用默认值,点击“Save”。今后再需要添加主机的时候,不会出现这个提示,直接可以点击“Add Host”。
在下一个界面中,点击步骤5中文本框右边的“复制”按钮,将rancher生成的一条命令复制到剪贴板,然后粘贴到client节点的命令行执行。在client节点执行完命令之后,回到WEB页面,点击“Close”。稍等片刻,刷新页面,即可看到client节点已经被加入到了rancher的基础架构中。
解释:
client的意思是“客户端”,这个概念是相对于Rancher Server而言的。这些client,实际上是用来部署各种应用的服务器,例如部署网站、部署博客、部署网盘等。要用Rancher来部署应用,就得让这些服务器乖乖地受Rancher Server控制。要做到这一点,就需要先在这些服务器上运行rancher agent,也就是rancher的代理(这实际上跟在电脑里面运行木马差不多的,运行了木马之后,你的电脑就受黑客控制了。这个比喻不是非常贴切,只是为了帮助理解,别太认真)。这就是为什么要在client节点下载rancher-agent镜像的原因。
而对于云平台的用户来说,这些服务器就不是客户端了,它们就是服务器,用来为云平台用户服务的,例如提供网页浏览、博客、网盘等服务。云平台的用户访问的,就是这些被Rancher视为client的服务器,而不是去访问Rancher Server服务器。
相关文章:
Docker平台搭建方法
Docker平台搭建方法 1.1在VMware中创建两个虚拟机,只需要1个网卡,连接192.168.200.0网络。 虚拟机分配2个CPU,2G内存,60G硬盘,主机名分别为server和client,IP地址分别为192.168.200.137和192.168.200.138。server节点还兼做regis…...
JavaScript数组
目录 1. 基本概念 2. 创建数组对象 2.1 字面量创建 2.2 构造函数创建 2.3 静态方法Array.of() 2.4 静态方法Array.from() 2.5 空槽位 3. 常用实例方法 3.1 修改方法 3.11 push 和 unshift 3.12 shift 和 pop 3.13 fill 3.14 cpoyWithin 3.15 reverse 3.16 sort …...
产品经理如何使用项目管理软件推进复杂项目按时上线
前言 相信很多产品同学或多或少都有过这样的经历:平时没有听到任何项目延期风险,但到了计划时间却迟迟无法提测……评审时没有任何argue,提测后发现开发的功能不是自己想要的……费劲九牛二虎之力终于让项目上线了,然而发现成果达…...
构建基于 DCGM-Exporter, Node exporter,PROMETHEUS 和 GRAFANA 构建算力监控系统
目录 引言工具作用概述DCGM-ExporterNode exporterPROMETHEUSGRAFANA小结 部署单容器DCGM-ExporterNode exporterPROMETHEUSGRAFANANode exporterDCGM-Exporter 多容器Node exporterDCGM-ExporterDocker Compose 参考 引言 本文的是适用对象,是希望通过完全基于Doc…...
第13章 聚合函数
一、聚合函数介绍 实际上 SQL 函数还有一类,叫做聚合(或聚集、分组)函数,它是对一组数据进行汇总的函数,输入的是一组数据的集合,输出的是单个值。(可以是一个字段的数据,也可以是通…...
【计网不挂科】计算机网络期末考试——【选择题&填空题&判断题&简述题】试卷(4)
前言 大家好吖,欢迎来到 YY 滴计算机网络 系列 ,热烈欢迎! 本章主要内容面向接触过C的老铁 本博客主要内容,收纳了一部门基本的计算机网络题目,供yy应对期中考试复习。大家可以参考 本章是去答案版本。带答案的版本在下…...
C# 中 LibraryImport 和 DllImport有什么不同
libraryimport 和 dllimport 是两个与动态链接库(DLL)相关的术语,它们在不同的编程语言和上下文中有不同的含义和用途。 在 C# 中,DllImportAttribute 是一个特性,用于指示一个方法声明是作为对非托管 DLL 中函数的 P…...
PDF编辑工具Adobe Acrobat DC 2023安装教程(附安装包)
Adobe Acrobat DC 2023 是 Adobe 公司推出的一款功能强大的 PDF 文档处理软件。它不仅支持创建、编辑和签署 PDF 文件,还提供了丰富的工具来管理和优化这些文件。以下是 Acrobat DC 2023 的一些主要特点: 1.PDF 创建与编辑:用户可以直接从多…...
系动词、表语和主语补足语
系动词、表语和主语补足语 1. The classification of English verbs (英语动词的分类)2. 系动词 (连系动词)2.1. Grammatical function (语法功能) 3. 表语和主语补足语3.1. Predicative expression (表语)3.2. Subject complement (主语补足语) 4. Copula-like words4.1. List…...
【网络安全 | 并发问题】Nginx重试机制与幂等性问题分析
未经许可,不得转载。 文章目录 业务背景Nginx的错误重试机制proxy_next_upstream指令配置重试500状态码非幂等请求的重试问题幂等性和非幂等性请求non_idempotent选项的使用解决方案业务背景 在现代互联网应用中,高可用性(HA)是确保系统稳定性的关键要求之一。为了应对服务…...
Java 详解 接口
文章目录 一、概述1.1、何为接口1.2、接口的定义 二、特点2.1、接口的成员变量2.2、接口的成员方法2.3、接口中不可以含有构造器和代码块2.4、接口不可以实例化对象2.5、接口和类之间使用implements关键字进行连接2.6、当类在重写接口中的方法时,不可以使用默认的访…...
wordpress搬家迁移后怎么修改数据库用户名
在WordPress中修改数据库用户名,你需要更新WordPress的配置文件wp-config.php。以下是步骤和示例代码: 使用FTP客户端或文件管理器登录到你的网站的主机账户。 找到wp-config.php文件,它通常位于WordPress安装的根目录中。 打开wp-config.…...
C# 用于将一个DataTable转换为Users对象的列表
1:第一种例子: /// <summary> /// 用户名循环赋值 /// </summary> /// <param name"dt"></param> /// <returns></returns> public List<Users> FenPeiFillModelUsers(DataTable dt) { …...
Spark中的shuffle
Shuffle的本质基于磁盘划分来解决分布式大数据量的全局分组、全局排序、重新分区【增大】的问题。 1、Spark的Shuffle设计 Spark Shuffle过程也叫作宽依赖过程,Spark不完全依赖于内存计算,面临以上问题时,也需要Shuffle过程。 2、Spark中哪…...
网络安全SQL初步注入2
六.报错注入 mysql函数 updatexml(1,xpath语法,0) xpath语法常用concat拼接 例如: concat(07e,(查询语句),07e) select table_name from information_schema.tables limit 0,1 七.宽字节注入(如果后台数据库的编码为GBK) url编码:为了防止提交的数据和url中的一些有特殊意…...
使用Go语言编写一个简单的NTP服务器
NTP服务介绍 NTP服务器【Network Time Protocol(NTP)】是用来使计算机时间同步化的一种协议。 应用场景说明 为了确保封闭局域网内多个服务器的时间同步,我们计划部署一个网络时间同步服务器(NTP服务器)。这一角色将…...
注意力机制篇 | YOLO11改进 | 即插即用的高效多尺度注意力模块EMA
前言:Hello大家好,我是小哥谈。与传统的注意力机制相比,多尺度注意力机制引入了多个尺度的注意力权重,让模型能够更好地理解和处理复杂数据。这种机制通过在不同尺度上捕捉输入数据的特征,让模型同时关注局部细节和全局…...
昇思大模型平台打卡体验活动:项目3基于MindSpore的GPT2文本摘要
昇思大模型平台打卡体验活动:项目3基于MindSpore的GPT2文本摘要 1. 环境设置 本项目可以沿用前两个项目的相关环境设置。首先,登陆昇思大模型平台,并进入对应的开发环境: https://xihe.mindspore.cn/my/clouddev 接着࿰…...
web——[GXYCTF2019]Ping Ping Ping1——过滤和绕过
0x00 考点 0、命令联合执行 ; 前面的执行完执行后面的 | 管道符,上一条命令的输出,作为下一条命令的参数(显示后面的执行结果) || 当前面的执行出错时(为假)执行后面的 & 将任…...
婚礼纪 9.5.57 | 解锁plus权益的全能结婚助手,一键生成结婚请柬
婚礼纪是一款结婚服务全能助手,深受9000万新人信赖的一站式结婚服务平台。解锁plus权益后,用户可以享受部分VIP会员功能。应用提供了丰富的结婚筹备工具和服务,包括一键生成结婚请柬、婚礼策划、婚纱摄影、婚宴预订等。婚礼纪旨在为新人提供全…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...
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…...
为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...
定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...
多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验
一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...
Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...
