看完这个,你就知道Docker是什么了

完完整整地看完这个故事,你敢说还不懂Docker? 程序员受苦久矣 多年前的一个夜晚,风雨大作,一个名叫Docker的年轻人来到Linux帝国拜见帝国的长老。 推荐学习:爱了!Alibaba内部出品“K8S+Docker指南”,理论与实战双管齐下 “Linux长老,天下程序员苦于应用部署久矣,我要改变这一现状,希望长老你能帮帮我” 长老回答:“哦,小小年纪,口气不小,先请入座,你有何所求,愿闻其详” Docker坐下后开始侃侃而谈:“当今天下,应用开发、测试、部署,各种库的依赖纷繁复杂,再加上版本之间的差异,经常出现在开发环境运行正常, 阅读详情

在开始谈docker容器之前,先需要清楚什么是虚拟化,什么是容器

虚拟化

如果要⽤简单的语句来阐述虚拟化技术的话,那么可以这么解释:
虚拟化技术是⼀种将计算机物理资源进⾏抽象、转换为虚拟的计算机资源提供给程序使⽤的技术。
这⾥所指的计算机资源,就包括了 CPU 提供的运算控制资源,硬盘提供的数据存储资源,⽹卡提供的⽹络传输资源等。
在这里插入图片描述

为跨平台而生

计算机发展早期,各类计算机平台,计算资源所提供的接口都不一样,调用十分混乱,没有像今天一样有相对统一的标准。由于为兼容不同的平台写各种各样的兼容代码,于是虚拟技术运应而生。虚拟化技术通过本身适配不同平台的硬件,抽象成统一的接口,从而实现程序的跨平台。

将虚拟化技术用于资源管理

在虚拟化技术发展的过程中,人们又发现了虚拟化技术的另外一个用途:资源管理。
因为虚拟化技术本来就是对计算机物理资源的抽象转换成虚拟的计算机资源,这样就很容易在这里对计算机资源进行修改,比如可以告诉程序这台计算机只有4G内存,而无论计算机是有16G还是32G,程序都会按照虚拟机告诉它的4G内存来进行使用。
通过虚拟化技术管理计算机资源的方式,不当能让我们对计算机资源的控制更加灵活,而且还能极大的提交计算机资源的使用率。
看到这可能会有些迷惑,虚拟化技术本身就要耗费部分的计算机资源,怎么还能产生1+1>2的效果?
其实这里指的是计算机的使用率,而非计算机的占用率,这两者看似很相近,其实并非一个概念。虚拟化技术能够提高计算机资源的使用率,是指利用虚拟化技术,将原本程序使用不到的资源分配给其他程序使用,从而提升计算机资源的整体利用率。
例如,这⾥我们有⼀台运⾏ Nginx 的机器,由于 Nginx 运⾏对系统资源的消耗并不⾼,这就让系统⼏乎 95% 以上的资源处于闲置状态。这时候我们通过虚拟化技术,把其他的⼀些程序放到这台机器上来 运⾏,它们就能够充分利⽤闲置的资源。这带来的好处就是我们不需要再为这些程序单独部署机器,从⽽节约不少的成本。
在这里插入图片描述
部分读者读到这⾥就会产⽣疑惑了,我本⾝就可以在操作系统⾥安装这些程序并且同时运⾏,为什么还要把它们分别装到不同的虚拟环境中去呢? 其实道理很简单,虽然我们能够在操作系统⾥同时运⾏多个程序,但前提得是这些程序本⾝不存在冲突。这⾥的冲突体现在很多的⽅⾯,例如不同的程序同时使⽤了同⼀个端⼜;不同程序依赖于同⼀个 ⼯具库的不同版本;程序本⾝限制了同时开启的进程数等。虚拟化技术通过资源隔离的⽅式,⽆形地也可以把这些程序隔离在不同的虚拟环境中,既然虚拟环境不同,⾃然运⾏在不同环境中的程序就不 会互相⼲扰或争抢资源了。

虚拟化的分类
  • 硬件虚拟化
  • 软件虚拟化

所谓硬件虚拟化,指的是物理硬件本⾝就提供虚拟化的⽀持。举个例⼦来说,某个平台的 CPU,能够将另外⼀个平台的指令集转换为⾃⾝的指令集执⾏,并给程序完全运⾏在那个平台上的感觉。又或者 说,CPU 能够⾃⾝模拟裂变,让程序或者操作系统认为存在多个 CPU,进⽽能够同时运⾏多个程序或者操作系统。这些都是硬件虚拟化的体现。
⽽软件虚拟化则指的是通过软件的⽅式来实现虚拟化中关键的指令转换部分。依然⽤ CPU 的例⼦来说话,在软件虚拟化实现中,通过⼀层夹杂在应⽤程序和硬件平台上的虚拟化实现软件来进⾏指令的转换。也就是说,虽然应⽤程序向操作系统或者物理硬件发出的指令不是当前硬件平台所⽀持的指令,这个实现虚拟化的软件也会将之转换为当前硬件平台所能识别的

在实际场景中,虚拟化还能进⾏更加细化的分类,例如:

  • 平台虚拟化:在操作系统和硬件平台间搭建虚拟化设施,使得整个操作系统都运⾏在虚拟后的环境中。
  • 应⽤程序虚拟化:在操作系统和应⽤程序间实现虚拟化,只让应⽤程序运⾏在虚拟化环境中。
  • 内存虚拟化:将不相邻的内存区,甚⾄硬盘空间虚拟成统⼀连续的内存地址,即我们常说的虚拟内存。
  • 桌⾯虚拟化:让本地桌⾯程序利⽤远程计算机资源运⾏,达到控制远程计算机的⽬的。
虚拟机

虚拟机 ( Virtual Machine )。所谓虚拟机,通常来说就是通过⼀个虚拟机监视器 ( Virtual Machine Monitor ) 的设施来隔离操作系统与硬件或者应⽤程序与操作系统,以此达到虚拟化的⽬的。这个夹在其中的虚拟机监视器,常常被称为 Hypervisor。
在这里插入图片描述
从我们习惯⽤来搭建虚拟操作系统环境的 VMware Workstation、Xen 等软件,到 Java 虚拟机 JVM,PHP 虚拟 机 HHVM 等等,都充活跃在我们程序开发到程序运⾏的过程中。
这个时候可能聪明的你们会发现,发现原来 JVM、HHVM 等特定语⾔运⾏环境中的核⼼部分,也是虚拟化的⼀种实实在在的实现。没错,只要⼤家仔细分析和思考⼀下就会发现,它们正是基于虚拟化的思想来实现的。它们通过隔离程序和操作系统,将程序的指令转换为当前所在操作系统平台所能执⾏的指令,达到了不⽤对程序进⾏任何修改即可执⾏的⽬的。也正是这个原因,这些语⾔的程序都具有⾮常强的跨平台性。
虽然虚拟机技术得益于 Hypervisor 的加持,使得应⽤程序或者操作系统可以在⽆任何修改的情况下运⾏在另⼀平台上,但⼤家很容易发现,其有⼀个致命的缺陷,就是所有的指令都必须经过虚拟机监视器的处理。这也就意味着,虚拟机的性能是低下的,例如运⾏在 ZendVM 或者 HHVM 中的 PHP 程序,所有代码虽然编译成了 Opcode 码,但其依然是通过虚拟机才最终转换为机器所能识别的机器码去执⾏。
这种效率的低下有时候是⽆法容忍的,为了解决这个问题,真实的虚拟机程序常常不完全遵循 Hypervisor 的设计结构,⽽是引⼊⼀些其他技术来解决效率问题。
例如,在 VMware Workstation、Xen 中我们能够看到硬件辅助虚拟化的使⽤,通过让指令直达⽀持虚拟化的硬件,以此避开了效率低下的 Hypervisor。⽽如 JRE、HPHP 中,除了基于 Hypervisor 实现的解 释执⾏机制外,还有即时编译 ( Just In Time ) 运⾏机制,让程序代码在运⾏前编译成符合当前硬件平台的机器码。

容器技术

容器技术是⼀种全新意义上的虚拟化技术,按分类或者实现⽅式来说,其应该属于操作系统虚拟化的范畴,也就是在由操作系统提供虚拟化的⽀持。
所谓容器技术,指的是操作系统⾃⾝⽀持⼀些接⼜,能够让应⽤程序间可以互不⼲扰的独⽴运⾏,并且能够对其在运⾏中所使⽤的资源进⾏⼲预。
由于应⽤程序的运⾏被隔离在了⼀个独⽴的运⾏环境之中,这个独⽴的运⾏环境就好似⼀个容器,包裹住了应⽤程序,这就是容器技术名字的由来。
虚拟机VS容器
在这里插入图片描述
由于没有了虚拟操作系统和虚拟机监视器这两个层次,从而省略了指令转换这一操作,⼤幅减少了应⽤程序运⾏带来的额外消耗。 更准确的来说,所有在容器中的应⽤程序其实完全运⾏在了宿主操作系统中,与其他真实运⾏在其中的应⽤程序在指令运⾏层⾯是完全没有任何区别的。

什么是Docker

Docker是由 dotCloud 在2013年开源的一个由Go实现的容器引擎。

Docker带来什么

利⽤它的全⾯性和易⽤性带来的提升我们的⼯作效率,可以将开发人员或者运维人员从重复且容易出错的服务搭建中解放出来,特别是在微服务的浪潮下,项目多模块化和服务化,一个完整的项目由很多小服务组成,这对于搭建来说也是一个不小的挑战。
docker技术实现
Docker 的实现,主要归结于三⼤技术:命名空间 ( Namespaces ) 、控制组 ( Control Groups ) 和联合⽂件系统 ( Union File System ) 。
在这里插入图片描述

Namespace

命名空间是 Linux 核⼼在 2.4 版本后逐渐引⼊的⼀项⽤于运⾏隔离的模块。Linux 内核的命名空间,就是能够将计算机资源进⾏切割划分,形成各⾃独⽴的空间。 就实现⽽⾔,Linux Namespaces 可以分为很多具体的⼦系统,如 User Namespace、Net Namespace、PID Namespace、Mount Namespace 等等。
这⾥我们以进程为例,通过 PID Namespace,我们可以造就⼀个独⽴的进程运⾏空间,在其中进程的编号又会从 1 开始。在这个空间中运⾏的进程,完全感知不到外界系统中的其他进程或是其他进程命名空间中运⾏的进程。
在这里插入图片描述
利⽤ PID Namespace,Docker 就实现了容器中隔离程序运⾏中进程隔离这⼀⽬标。

Control Groups

资源控制组 ( 常缩写为 CGroups ) 是 Linux 内核在 2.6 版本后逐渐引⼊的⼀项对计算机资源控制的模块。 顾名思义,资源控制组的作⽤就是控制计算机资源的。与隔离进程、⽹络、⽂件系统等虚拟资源为⽬的 Namespace 不同,CGroups 主要做的是硬件资源的隔离。 之前我们提到了,虚拟化除了制造出虚拟的环境隔离同⼀物理平台运⾏的不同程序之外,另⼀⼤作⽤就是控制硬件资源的分配,CGroups 的使⽤正是为了这样的⽬的。
需要再强调⼀次的是,CGroups 除了资源的隔离,还有资源分配这个关键性的作⽤。通过 CGroups,我们可以指定任意⼀个隔离环境对任意资源的占⽤值或占⽤率,这对于很多分布式使⽤场景来说是⾮ 常有⽤的功能。

Union File System

联合⽂件系统 ( Union File System ) 是⼀种能够同时挂载不同实际⽂件或⽂件夹到同⼀⽬录,形成⼀种联合⽂件结构的⽂件系统。联合⽂件系统本⾝与虚拟化并⽆太⼤的关系,但 Docker 却创新的将其引⼊ 到容器实现中,⽤它解决虚拟环境对⽂件系统占⽤过量,实现虚拟环境快速启停等问题。 在 Docker 中,提供了⼀种对 UnionFS 的改进实现,也就是 AUFS ( Advanced Union File System )。
AUFS
AUFS 将⽂件的更新挂载到⽼的⽂件之上,⽽不去修改那些不更新的内容,这就意味着即使虚拟的⽂件系统被反复修改,也能保证对真实⽂件系统的空间占⽤保持⼀个较低⽔平。 也许这个表述还不够形象,那么我们来⽤ Git 进⾏⽐较,会让⼤家会更容易理解。⼤家知道,我们在 Git 中每进⾏⼀次提交,Git 并不是将我们所有的内容打包成⼀个版本,⽽只是将修改的部分进⾏记 录,这样即使我们提交很多次后,代码库的空间占⽤也不会倍数增加。 同样的,通过 AUFS,Docker ⼤幅减少了虚拟⽂件系统对物理存储空间的占⽤。由此,Docker 也开创出了虚拟化领域很多新的轻量级解决⽅案,这在之后的⼩节⾥我们会提到。
Docker 的理念
在对 Docker 及其背后的⼀些技术有了⼀个初步了解之后,我们还要着重说⼀下 Docker 本⾝的⼀些设计理念。如果说熟悉 Docker 背后的技术能够更好的帮助你正确使⽤ Docker,那么理解 Docker 的理念 将更好的指导你如何搭配 Docker 容器间的关系。 让我们先来从⼀张 Docker 官⽅提供的架构图来看看 Docker 对容器结构的设计。
在这里插入图片描述
与其他虚拟化实现甚⾄其他容器引擎不同的是,Docker 推崇⼀种轻量级容器的结构,即⼀个应⽤⼀个容器。
举个具体的例⼦,在常见的虚拟机实现中,我们要搭建⼀套 LAMP 结构的服务,我们通常会建⽴⼀个虚拟机,在虚拟机中安装上 Linux 系统,之后分别安装 Apache、MySQL 和 PHP。⽽在 Docker ⾥,最佳的实践是分别基于 Apache、MySQL 和 PHP 的镜像建⽴三个容器,分别运⾏ Apache、MySQL 和 PHP ,⽽它们所在的虚拟操作系统也直接共享于宿主机的操作系统。
如果我们将 Docker 的轻量级容器实现和虚拟机的⼀些参数进⾏对⽐,更容易得到结果。

属性Docker虚拟机
启动速度秒级分钟级
硬盘使⽤MB 级GB 级
性能接近原⽣较低
普通机器⽀撑量数百个⼏个
Docker 能做什么

从理论上我们已经知道 Docker 能够为我们的⼯作带来巨⼤的便利,那么将其放于实践中,我们应该如何正确的使⽤它呢?这⾥我摘录整理了⼀段来⾃ Docker 官⽅⽂档的指导意见,希望能够对⼤家的实 践提供参考。

更快、更⼀致的交付你的应⽤程序

使⽤ Docker 后,开发者能够在本地容器中得到⼀套标准的应⽤或服务的运⾏环境,由此可以简化开发的⽣命周期 ( 减少在不同环境间进⾏适配、调整所造成的额外消耗 )。对于整个应⽤迭代来说,加⼊ Docker 的⼯作流程将更加适合持续集成 ( Continuous Integration ) 和持续交付 ( Continuous Delivery )。
举个具体的例⼦:
开发者能够使⽤ Docker 在本地编写代码并通过容器与其他同事共享他们的⼯作。 他们能够使⽤ Docker 将编写好的程序推送⾄测试环境进⾏⾃动化测试或是⼈⼯测试。 当出现 Bugs 时,开发者可以在开发环境中修复它们,并很快的重新部署到测试环境中。 在测试完成后,部署装有应⽤程序的镜像就能完成⽣产环境的发布。

跨平台部署和动态伸缩

基于容器技术的 Docker 拥有很⾼的跨平台性,Docker 的容器能够很轻松的运⾏在开发者本地的电脑,数据中⼼的物理机或虚拟机,云服务商提供的云服务器,甚⾄是混合环境中。
同时,Docker 的轻量性和⾼可移植性能够很好的帮助我们完成应⽤的动态伸缩,我们可以通过⼀些⼿段近实时的对基于 Docker 运⾏的应⽤进⾏弹性伸缩,这能够⼤幅提⾼应⽤的健壮性。

让同样的硬件提供更多的产出能⼒

Docker 的⾼效和轻量等特征,为替代基于 Hypervisor 的虚拟机提供了⼀个经济、⾼效、可⾏的⽅案。在 Docker 下,你能节约出更多的资源投⼊到业务中去,让应⽤程序产⽣更⾼的效益。同时,如此低的 资源消耗也说明了 Docker ⾮常适合在⾼密度的中⼩型部署场景中使⽤。

Docker核心组成

在 Docker 体系⾥,有四个对象 ( Object ) 是我们不得不进⾏介绍的,因为⼏乎所有 Docker 以及周边⽣态的功能,都是围绕着它们所展开的。它们分别是:镜像 ( Image )、容器 ( Container )、⽹络 ( Network )、数据卷 ( Volume )。

镜像

镜像,可以理解为⼀个只读的⽂件包,其中包含了虚拟环境运⾏最原始⽂件系统的 内容。
当然,Docker 的镜像与虚拟机中的镜像还是有⼀定区别的。⾸先,之前我们谈到了 Docker 中的⼀个创新是利⽤了 AUFS 作为底层⽂件系统实现,通过这种⽅式,Docker 实现了⼀种增量式的镜像结构。
在这里插入图片描述
每次对镜像内容的修改,Docker 都会将这些修改铸造成⼀个镜像层,⽽⼀个镜像其实就是由其下层所有的镜像层所组成的。当然,每⼀个镜像层单独拿出来,与它之下的镜像层都可以组成⼀个镜像。
另外,由于这种结构,Docker 的镜像实质上是⽆法被修改的,因为所有对镜像的修改只会产⽣新的镜像,⽽不是更新原有的镜像。

容器

容器 ( Container ) 就更好理解了,在容器技术中,容器就是⽤来隔离虚拟环境的基础设施,⽽在 Docker ⾥,它也被引申为隔离出来的虚拟环境。
如果把镜像理解为编程中的类,那么容器就可以理解为类的实例。镜像内存放的是不可变化的东西,当以它们为基础的容器启动后,容器内也就成为了⼀个“活”的空间。 ⽤更官⽅的定义,Docker 的容器应该有三项内容组成:

  • ⼀个 Docker 镜像
  • ⼀个程序运⾏环境
  • ⼀个指令集合
⽹络

在 Docker 中,实现了强⼤的⽹络功能,我们不但能够⼗分轻松的对每个容器的⽹络进⾏配置,还能在容器间建⽴虚拟⽹络,将数个容器包裹其中,同时与其他⽹络环境隔离。
在这里插入图片描述
另外,利⽤⼀些技术,Docker 能够在容器中营造独⽴的域名解析环境,这使得我们可以在不修改代码和配置的前提下直接迁移容器,Docker 会为我们完成新环境的⽹络适配。对于这个功能,我们甚⾄能 够在不同的物理服务器间实现,让处在两台物理机上的两个 Docker 所提供的容器,加⼊到同⼀个虚拟⽹络中,形成完全屏蔽硬件的效果。

数据卷

除了⽹络之外,⽂件也是重要的进⾏数据交互的资源。在以往的虚拟机中,我们通常直接采⽤虚拟机的⽂件系统作为应⽤数据等⽂件的存储位置。然⽽这种⽅式其实并⾮完全安全的,当虚拟机或者容器 出现问题导致⽂件系统⽆法使⽤时,虽然我们可以很快的通过镜像重置⽂件系统使得应⽤快速恢复运⾏,但是之前存放的数据也就消失了。
为了保证数据的独⽴性,我们通常会单独挂载⼀个⽂件系统来存放数据。这种操作在虚拟机中是繁琐的,因为我们不但要搞定挂载在不同宿主机中实现的⽅法,还要考虑挂载⽂件系统兼容性,虚拟操作 系统配置等问题。值得庆幸的是,这些在 Docker ⾥都已经为我们轻松的实现了,我们只需要简单的⼀两个命令或参数,就能完成⽂件系统⽬录的挂载。
能够这么简单的实现挂载,主要还是得益于 Docker 底层的 Union File System 技术。在 UnionFS 的加持下,除了能够从宿主操作系统中挂载⽬录外,还能够建⽴独⽴的⽬录持久存放数据,或者在容器间共 享。
在 Docker 中,通过这⼏种⽅式进⾏数据共享或持久化的⽂件或⽬录,我们都称为数据卷 ( Volume )。

Docker Engine

时⾄今⽇,Docker ⽣态已经远⽐它诞⽣之初要庞⼤许多,虽然我们仍然习惯使⽤ Docker 这个名字去指代实现容器技术⽀持的软件,但显然更加容易与其他的概念产⽣混淆。这⾥我们很有必要对这个 Docker 中最核⼼的软件进⾏介绍,不仅因为它在 Docker ⽣态中扮演着中⼼的地位,也因为它是我们在开发中实实在在接触最多的东西。 ⽬前这款实现容器化的⼯具是由 Docker 官⽅进⾏维护的,Docker 官⽅将其命名为 Docker Engine,同时定义其为⼯业级的容器引擎 ( Industry-standard Container Engine )。在 Docker Engine 中,实现了 Docker 技术中最核⼼的部分,也就是容器引擎这⼀部分。

docker daemon 和 docker CLI

虽然我们说 Docker Engine 是⼀款软件,但实实在在去深究的话,它其实算是由多个独⽴软件所组成的软件包。在这些程序中,最核⼼的就是 docker daemon 和 docker CLI 这俩了。 所有我们通常认为的 Docker 所能提供的容器管理、应⽤编排、镜像分发等功能,都集中在了 docker daemon 中,⽽我们之前所提到的镜像模块、容器模块、数据卷模块和⽹络模块也都实现在其中。在操 作系统⾥,docker daemon 通常以服务的形式运⾏以便静默的提供这些功能,所以我们也通常称之为 Docker 服务。
在这里插入图片描述
在 docker daemon 管理容器等相关资源的同时,它也向外暴露了⼀套 RESTful API,我们能够通过这套接⼜对 docker daemon 进⾏操作。或者更确切的说,是通过这套 RESTful API 对 docker daemon 中运 ⾏的容器和其他资源进⾏管理。 通常来说,我们是采⽤在控制台或者命令⾏输⼊命令来控制 docker daemon 的,因为这样很酷也更容易适应那些有或者没有图形界⾯的操作系统。
如果我们在控制台中编写⼀个 HTTP 请求以借助 docker daemon 提供的 RESTful API 来操控它,那显然是个费脑、费⼿又费时间的活⼉。所以在 Docker Engine ⾥还直接附带了 docker CLI 这个控制台程序。
在这里插入图片描述
熟悉程序结构的朋友们⽐较容易看出来,docker daemon 和 docker CLI 所组成的,正是⼀个标准 C/S ( Client-Server ) 结构的应⽤程序。衔接这两者的,正是 docker daemon 所提供的这套 RESTful API。

NeRF-Pytorch(训练自己的数据集过程全记录+环境配置+COLMAP+问题解决) 写于2025/1/26,在用NeRF训练自己的数据集过程中该踩的坑都踩过了,发现网上并没有详细完整写这些问题解决过程的帖子,遂自己进行一个全记录和复盘。 整篇文章包括:NeRF训练环境配置;COLMAP三维重建过程(直接给出代码,规避一些bug);在训练时候出现的问题。 本篇文章仅针对llff格式数据集。 阅读详情

相关推荐

用Unity Wheel Collider做坦克转向?3步实现履带式载具物理效果

本文详细解析了如何利用Unity的Wheel Collider组件实现履带式载具的差速转向物理效果。通过思维转换、场景搭建和核心代码实现三步,将Wheel Collider从模拟轮式车辆转向改造为控制履带扭矩差的系统,并深入探讨了参数调试与真实感提升的方法,帮助开发者打造物理反馈扎实的坦克或特种车辆模拟。

weixin_29009971的博客 224

一文说清 Docker 是什么

Docker 是什么

m0_51913750的博客 2万+

RTX 50系显卡(5080/5090D)CUDA 12.8环境下的vLLM部署避坑与实战指南

本文为RTX 5080/5090D显卡用户提供了在CUDA 12.8环境下部署vLLM的完整实战指南。文章详细介绍了从驱动安装、CUDA 12.8环境配置、PyTorch Nightly版本精准匹配,到vLLM源码编译及常见报错排查的全过程,帮助开发者高效利用新一代硬件进行大模型推理。

gray5的博客 671

一文说清 Docker 是什么(非常详细),零基础入门到精通,看这一篇就够了

一文说清 Docker 是什么(非常详细),零基础入门到精通,看这一篇就够了

隔壁王叔的博客 1万+

SAP ABAP实战:用GN_DELIVERY_CREATE批量创建内部交货单的完整代码与避坑指南

本文详细介绍了在SAP ABAP开发中使用GN_DELIVERY_CREATE函数批量创建内部交货单的完整实现方案。通过数据结构设计、多源数据整合、批量处理逻辑和错误处理机制等核心环节的深入解析,帮助开发者高效完成物流单据自动化处理,特别针对VL31N/VL32N等常见场景提供避坑指南。

weixin_42116058的博客 343

自制《大侠狂想曲》修改器:内存修改、加速与一键安装全攻略

游戏修改器是玩家优化游戏体验的常用工具,其核心原理是通过内存修改技术,在游戏进程运行时动态改写数值。常见实现路径是借助Cheat Engine扫描并追踪数据地址,再通过编程语言调用系统API完成读写。这种技术能有效解决重复刷资源带来的枯燥感,特别适用于单机RPG中想快速体验多剧情线却不想重刷资源的情形。本文以《大侠狂想曲》为例,完整拆解了从CE定位金钱与好感度内存地址,到编写C#脚本实现游戏加速、一键增加铜钱与NPC好感度,再到用Inno Setup打包生成一键安装器的全过程,并总结了数值弹回、剧情不触发、

weixin_30368981的博客 1479

如何通俗解释Docker是什么?

Docker的思想来自于集装箱,集装箱解决了什么问题?在一艘大船上,可以把货物规整的摆放起来。并且各种各样的货物被集装箱标准化了,集装箱和集装箱之间不会互相影响。那么我就不需要专门运送水果的船和专门运送化学品的船了。只要这些货物在集装箱里封装的好好的,那我就可以用一艘大船把他们都运走。 docker就是类似的理念。现在都流行云计算了,云计算就好比大货轮。docker就是集装箱。 1.不同的

changhenshui1990的博客 2万+

第一节:从Chat_Bot 到 AI_Agent——一个范式转换

本文系统剖析了工业级AI代理系统ClaudeCode的设计原理与工程实践。通过对比ChatBot与Agent的三个本质差异:自主循环决策vs单轮应答、环境交互vs纯文本I/O、持久状态管理vs无状态对话,揭示了构建生产级Agent系统的关键挑战。文章详细解析了ClaudeCode的五层架构设计、1800+文件组成的运行时系统,包括工具调度、权限管理、状态持久化等核心机制,并阐述了从简单API调用到完整Agent系统的演进路径。

2201_75869398的博客 69

docker简介

简单介绍了docker是什么?为什么要使用docker?对docker的优点和特点进行了简单概述。

maydidi的博客 5006

【系统架构设计师】模拟预测试卷十 - 案例分析(完整结构)

本文为系统架构设计师考试模拟试题及参考答案,包含五个专题:质量属性(必答)、信息系统架构设计、嵌入式系统架构设计、云原生架构设计、面向服务架构设计(SOA)。试题一聚焦非功能需求与质量属性映射,如性能、可修改性、一致性等;其余选答题分别涉及分层架构设计(如嵌入式实时控制)、云原生会话管理、服务化治理(如契约设计、熔断策略)等核心架构场景,涵盖战术应用、权衡分析及解决方案设计。参考答案提供关键要点,例如离线借还的冲突解决、服务编排与共享服务的区分、嵌入式硬实时保护的必要性等,适用于备考实战演练。

数据知道的博客 252

全局注意机制 GAM | Global Attention Mechanism: Retain Information to Enhance Channel-Spatial Interactions

全局注意机制 GAM

Coding... 2579

【Docker】什么是Docker?一文带你了解

Docker是一个开源的容器化平台,可以使用容器来虚拟化应用程序和服务。它将应用程序和所需的依赖项打包到称为容器的独立单元中,以便可以在任何环境中快速、可靠地部署和运行。使用Docker,开发人员可以轻松地构建、发布和管理应用程序,而不受底层硬件或操作系统的限制。Docker是一个开源的容器化平台,它可以将应用程序和所需的依赖项打包到容器中,以便可以在任何环境中快速、可靠地部署和运行。它的创始人是Solomon Hykes,最早由dotCloud公司开发,并在2013年以开源项目的形式发布。

weixin_74021557的博客 6031

基于YOLOv8和时序模型的异常动作检测系统

异常动作检测是计算机视觉领域的重要应用,广泛应用于智能监控、安防系统、老人看护等场景。本项目结合YOLOv8目标检测和LSTM时序模型,实现对打架、摔倒、奔跑等异常动作的实时检测,并提供了完整的Web界面。多技术融合: 结合YOLOv8目标检测和LSTM时序建模实时检测: 支持实时视频流处理和文件分析用户友好: 提供完整的Web界面可扩展性: 模块化设计便于功能扩展高性能: 包含多种优化策略。

YOLO 764

我不允许2022年还没有程序员看过这份Docker学习笔记,看完就知道有多香

如果你还在问“为什么要学习docker”?那作为一名开发人员,实属不太合格了。掌握更多更流行的技术,是作为一名Java工程师,对自己最基础的要求。学习,是为了让你变成更好的自己!

知识分享官 242

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Docker详解,你知道的和不知道的都在这儿

Docker 是一个开源的容器化平台,允许开发者将应用程序和所有其依赖项打包成一个轻量级、可移植的容器,以便在任何地方运行。Docker 采用了 Linux Namespace 和 cgroups 等技术,实现了高度的资源隔离和安全保障,使得容器化应用得以快速、高效地部署和运行。

AI时代光年 2664

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Docker入门 _看完即掌握

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

2401_83384536的博客 916

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

【Docker 2】看完这篇,Docker你就入门了

在计算机技术日新月异的今天,Docker在国内发展的如火如荼,特别是在一线互联网公司,Docker的使用是十分普遍的,在理解docker之前,我们先熟悉两个概念,容器和虚拟机。 一、容器与虚拟机 传统的虚拟机有VMware,VisualBox,它们需要模拟整台机器包括硬件,每台虚拟机都需要有自己的操作系统,虚拟机一旦开启,预分配给它们的资源将全部被占用。每一台虚拟机包括应用,必要的二进制和库...

学Java,找哪吒 4925

docker面试你要知道

docker面试;docker知识点;docker 容器

Lockey23的博客 1万+

你不知道的Docker

一、前言 docker是一种容器技术,k8s是一种容器编排技术,当然docker也支持容器编排,但是由于名声干不过k8s所以业界在容器编排大多用的就是k8s(简单比较下) 二、docker基础知识 docker基本组成 镜像 从某种角度可以理解为软件安装包,就好比没有jar,war包如何启动spring服务? 容器 通过docker run + 镜像ID 启动的服务称之为容器,容器与容器之间互相不影响,相互隔离 仓库 同比maven镜像公共仓库,此仓库有丰富的资源镜像供大家下载:https://

HenryXiao的博客 1万+

什么是docker和docker-compose?这些概念你必须知道

Docker 是一种可以让您把 WordPress 应用和它需要的环境(比如 PHP、MySQL 等)打包成一个小盒子的技术,这个小盒子就叫做容器。容器的好处是,它可以在任何支持 Docker 的 Linux 机器上运行,而不用担心环境的差异和冲突。这样,您就可以把 WordPress 应用和环境一起移动和部署,而不用每次都重新安装和配置。Docker 的核心是 Docker 引擎,它是一个运行在 Linux 机器上的客户端-服务器应用,负责创建和管理容器。

夏夜听风 6536

Docker上手,看完觉得自己又行了!

大家好,我是小菜,一个渴望在互联网行业做到蔡不菜的小菜。可柔可刚,点赞则柔,白嫖则刚! 死鬼~看完记得给我来个三连哦! 本文主要介绍 Docker 的基本使用 如有需要,可以参考 如有帮助,不忘 点赞 ❥ 微信公众号已开启,小菜良记,没关注的同学们记得关注哦! Docker 简介 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也

Cbuc丶的博客 423

【关于docker,我们需要知道什么】

关于docker,我们需要知道什么什么是dockerdocker常用操作功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 什么是docker 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Ma

weixin_50521526的博客 174

[docker]你不知道的docker奇淫技巧

$ docker run -t -i -v /var/run/docker.sock:/var/run/docker.sock -v /path/to/static-docker-binary:/usr/bin/docker busybox sh By bind-mounting the docker unix socket and statically linked docker b

毛台 6443

不能不知道的Docker知识

1.Docker是什么? 我们在理解 Docker 之前,首先得先区分清楚两个概念,容器和虚拟机。 可能很多朋友都用过虚拟机,而对容器这个概念比较的陌生。我们用的传统虚拟机如 VMware , VisualBox 之类的需要模拟整台机器包括硬件。每台虚拟机都需要有自己的操作系统,虚拟机一旦被开启,预分配给它的资源将全部被占用。每一台虚拟机包括应用,必要的二进制和库,以及一个完整的用户操作系统。而容器技术是和我们的宿主机共享硬件资源及操作系统,可以实现资源的动态分配。 容器包含应用和其所有的依赖包,但是与

宋文轩 1316

看完这篇,Docker你就入门了

在计算机技术日新月异的今天, Docker在国内发展的如火如荼,特别是在一线互联网公司,Docker的使用是十分普遍的,在理解docker之前,我们先熟悉两个概念,容器和虚拟机。一、容器与...

边缘计算社区 823

armbian docker Chrome_Docker上手,看完觉得自己又行了!

大家好,我是小菜,一个渴望在互联网行业做到蔡不菜的小菜。可柔可刚,点赞则柔,白嫖则刚! 「死鬼~看完记得给我来个三连哦!」“ 本文主要介绍 Docker 的基本使用如有需要,可以参考如有帮助,不忘 「点赞」 ❥微信公众号已开启,「小菜良记」,没关注的同学们记得关注哦!”Docker 简介“ Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 协议开源。 Docker 可以让开发者打...

weixin_39983912的博客 621
上一篇: Neo4j概述
下一篇: 你需要知道的MySQL索引
周庄
博客等级 码龄10年 3粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值