Docker入门介绍

【一】从 dotCloud 到 Docker——低调奢华有内涵

1、追根溯源:dotCloud

时间倒回到两年前,有一个名不见经传的小公司,他的名字叫做:dotCloud。 dotCloud 公司主要提供的是基于 PaaS(Platform as a Service,平台及服务) 平台为开发者或开发商提供技术服务,并提供的开发工具和技术框架。

初创企业总是艰难的,dotCloud 也是一样。在 IBM,亚马逊,谷歌等大公 司的挤压下,dotCloud 举步维艰。即使 2011 年拿到了1000 万美元的融资,可和上述大公司比起来也不过是杯水车薪。

随着开源的洪流袭来,在2013年dotCloud 的创始人,28岁的Solomon Hykes 做了一个艰难的决定:将 dotCloud 的核心引擎开源!然而一旦这个基于 LXC(Linux Container)技术的核心管理引擎开源,dotCloud 公司就相当于走 上了一条"不归路"。

可正是这个孤注一掷的举动,却带来了全球技术人员的热潮,众程序员惊呼: 太方便了,太方便了。也正是这个决定,让所有的 IT 巨头也为之一颤。一个新的公司也随之出世,它就是:Docker。

2、Docker 出世:从 Docker0.1 到 Docker1.0

一个春秋,跨越了 Docker 的成名路。在互联网时代,一夜成名早已不是什么新闻。Docker 这个技术公司,向我们证明了,成为一个"国际巨星",只需要一个月。2013 年 2 月决定开源,到 2013年 3 月 20 日发布 Docker0.1,只用了一个月的时间。

今后几乎每个一个月,Docker 都会发布一个版本。而 Docker0.1 的发布像 是一个宣言,昭示着一个 Docker 正在以一个新兴容器领导者的姿态迈进。

正如我们所知,从 Docker0.1 到 Docker1.0,15 个月的时间,Docker 迅速成 长。在 2014 年 6 月 9 日,Docker 团队宣布发布 Docker 1.0 版。

Docker1.0 下载地址: http://blog.Docker.com/2014/06/its-here-Docker-1-0/ 

2014 年 6 月 9 日,1.0 版本发布官方声明

1.0 版本标志着 Docker 公司认为 Docker 平台已经足够成熟,并可以被应 用到产品中(还提供了一些需要付费的支持选项)。

在这 15 个月中,Docker 共收到了超过 460 位贡献者的 8741 条改进建议,Docker 的用心经营下社区十分活跃。可以说,Docker 的成功起于开源,发于 社区。

一年的时间,使一个围绕着 Docker 的小型初创企业生态体系逐渐形成。 Docker 先后赢得了 Google、微软、Amazon、VMware 等巨头的青睐,巨头 们纷纷示意将保证自己平台与 Docker 容器技术的兼容性。微软还宣布来要推出 面向 Windows 的 Docker 客户端。

到了 2014 年 9 月,Docker 完成 4000 万美元的 C 轮融资,彼时市值与约 为 4 亿美元。可以说 Docker 一路风生水起,迅速赢得了 IT 圈的信赖。并且在 8 月 12Docker 发布了 Docker1.8 正式版(下载地址见末尾)。

但 Docker 是如何做到这些的呢?Docker 的成功之路能否被复制呢?

【二】如何定义 Docker?

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上。

Docker 是一个重新定义了程序开发测试、交付和部署过程的开放平台, Docker 则可以称为构建一次,到处运行,这就是 Docker 提出的“Build once, Run anywhere”

 Docker:Build once,Run anywhere

为了更好的认识 Docker,我们先来了解几个必备词汇:镜像,容器和仓库。

1、镜像:

文件的层次结构,以及包含如何运行容器的元数据, Dockerfile 中的每条命令都会在文件系统中创建一个新的层次结构,文件系统在这些层次上 构建起来,镜像就构建于这些联合文件系统之上。

Docker 镜像就是一个只读的模板,镜像可以用来创建 Docker 容器。 Docker 提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可 以直接从其他人那里下载一个已经做好的镜像来直接使用。

2、容器:

容器是从镜像创建的运行实例。它可以被启动、开始、停止、删 除。每个容器都是相互隔离的、保证安全的平台。可以把容器看做是一个简易版 的 Linux 环境,Docker 利用容器来运行应用。

3、仓库:

仓库是集中存放镜像文件的场所,仓库注册服务器(Registry) 上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签 (tag)。目前,最大的公开仓库是 Docker Hub,存放了数量庞大的镜像供用 户下载。

Docker 仓库用来保存我们的 images,当我们创建了自己的 image 之后我 们就可以使用 push 命令将它上传到公有或者私有仓库,这样下次要在另外一台 机器上使用这个 image 时候,只需要从仓库上 pull 下来就可以了。

Docker 的运行离不开这几位的支持,Docker 的成功也是拜几位所赐。也 有人会误以为,Docker 就是容器。但 Docker 只会傲娇地说:我不是容器,我 是管理容器的引擎。

什么是 Docker

Docker 中文手册上解释说:Docker 是一个开源的引擎,可以轻松的为任 何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译 测试通过的容器可以批量地在生产环境中部署,包括 VMs(虚拟机)、bare metal、 OpenStack 集群和其他的基础应用平台。

从这里我们可以看出,Docker 并非是容器,而是管理容器的引擎。Docker 为应用打包、部署的平台,而非单纯的虚拟化技术。

【三】Docker 与虚拟化争锋

  容器技术与传统虚拟机性能对比

谈到虚拟化,很多人又发问了。Docker 和虚拟化有什么区别?Docker(或者说是容器)的出现是否会取代传统的虚拟化技术。

说起虚拟化,大家首先想到的必然是 VM 一类的虚机。这类虚拟机完美的 运行了另一套系统,能够使应用程序,操作系统和硬件三者之间的逻辑不变。

但在惜时如金的现在,这类虚机也面临着一定的问题,比如:启动时间太长, 你有没有过在启动虚拟机后,点开其他页面继续操作,过了一分钟才回来的经历? 还有虚拟镜像体积太大(一般都是几十 GB)等问题。相比之下,Docker 的镜 像一般只有二三百兆。并且启动速度超快, Docker 的启动时间为毫秒级。

还有一个最大的问题是价格问题,据 StackEngine 调查分析,有 43.8%的 企业使用 Docker 的原因是 VMvire 太贵。

Docker 与虚拟机建构对比

但是,传统的虚拟技术还不会被取代。Docker 或者说容器技术和虚拟机并 非简单的取舍关系。

目前,很多企业仍在使用虚拟机技术,原因很简单,他们需要一个高效,安 全且高可用的构架。然而,刚刚面世两年的 Docker 还没有经历沙场考验,CaaS (Container as a Service,容器即服务)概念也是近两年才刚刚出现。无论是 应用管理还是运行维护方面,Docker 都还处于发展与完善阶段。

【四】Docker:我为什么与众不同

Solomon Hykes:成功的要素之一是在正确的时间做了正确的事,我们一 直坚信这个理念。Docker 就好比传统的货运集装箱。但是创新可不仅仅是在这 个盒子里,而且还包括如何自动管理呈现上万个这样的箱子。这才是问题的关键。

站在未来的角度,Docker 解决了三大现存问题。

Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中, 然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。

俗话说:天下武学为快不破;在更新迭代如此之快的 IT 更是如此。所有成 功的 IT 公司都必须走在时代的前列,他们的产品应该来自未来。他们有必要要 站在未来的角度解决现存的问题。

 Docker 之父 Solomon Hykes:Docker 就好比传统的货运集装箱

Solomon Hykes 曾经说过,自己在开发 dotCloud 的 PaaS 云时,就发现 一个让人头痛的问题:应用开发工程师和系统工程师两者之间无法轻松协作发布 产品。Docker 解决了难题。让开发者能专心写好程序;让系统工程师专注在应 用的水平扩展、稳定发布的解决方案上。

1、简化程序:Docker 让开发者可以打包他们的应用以及依赖包到一个可 移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。

Docker 改变了虚拟化的方式,使开发者可以直接将自己的成果放入 Docker 中进行管理。方便快捷已经是 Docker 的最大优势,过去需要用数天乃至数周的 任务,在 Docker 容器的处理下,只需要数秒就能完成。

2、避免选择恐惧症:如果你有选择恐惧症,还是资深患者。Docker 帮你 打包你的纠结!比如 Docker 镜像;Docker 镜像中包含了运行环境和配置,所 以 Docker 可以简化部署多种应用实例工作。比如 Web 应用、后台应用、数据 库应用、大数据应用比如 Hadoop 集群、消息队列等等都可以打包成一个镜像 部署。

3、节省开支:一方面,云计算时代到来,使开发者不必为了追求效果而配 置高额的硬件,Docker 改变了高性能必然高价格的思维定势。Docker 与云的 结合,让云空间得到更充分的利用。不仅解决了硬件管理的问题,也改变了虚拟 化的方式。

另一方面,Docker 能够是自愿额达到充分利用。举个简单地例子:凌晨三 点的时候只有很少的人会去访问你的网站,同时你需要比较多的资源执行夜间的 批处理任务,通过 Docker 可以很简单的便实现资源的交换。

Docker 的这些优势,让各大 IT 巨头纷纷对 Docker 看好。

【五】统一标准,建立更有活力的生态系统

开放容器技术项目(Open Container Project)

在 2015 年的 DockerCon 上推出了开放容器技术项目(Open Container Project)。OCP 是一个非营利性组织,其受特许建立通用的容器软件技术标准。

这个项目汇集了微软、谷歌、惠普、IBM、英特尔、红帽(Red Hat)、VMware 以及高盛等众多实力企业,OCP 的推出,也使宿敌 Docker 和 CoreOS 走向了 联合。让微软与自己的竞争对手 Linux 合作,足以见得 Docker 的魅力。

谷歌云计算平台产品经理克雷格·麦克拉克伊(Craig Mcluckie)说:创建通用 容器格式非常重要,单一标准可以促进更有活力的生态系统。

【六】企业对 Docker 是否认可?安全是关键!

随着容器技术逐渐得到 IT 界的认可,CaaS(Container as a Service,容 器即服务)也逐渐形成。而 Docker 作为 CaaS 技术的标杆是否已经得到企业的 认可?是否投入生产呢?

2015 年,VMblog.com 和 CloudCow.com 共同组织了一次问卷调查。报 告显示,Docker 的早期用户中,63%的用于 QA/Test,53%的用于开发,并且 31%的用户计划在生产环境中使用 Docker,阻碍企业使用 Docker 的最大因素 在于其安全性以及缺少生产环境下的运维工具(两个原因各占 49%左右)。

对 Docker 应用最广泛的三个领域分别是:Test/QA 应用;Web 应用;大 数据,企业应用。

调查显示,目前企业对 Docker 的接受程度在不断提高。但 Docker 的安全 性似乎仍旧是企业顾虑的主要原因,那么 Docker 的安全性究竟如何?

 

Gartner:Docker 还是一项年轻的技术,它的安全性仍不够成熟

2015 年 1 月,Gartner 分析师 Joerg Fritsch 发布一份报告,报告显示: 虽然 Docker 这款容器化工具已经颇具名声,但 Docker 的安全性仍不够成熟。

Joerg Fritsch 指出:"Docker 与容器技术目前还无法通过虚拟机管理程序 弥合自身最为严重的两大短板:安全性保障与管理功能,外加在常见控制机制的 机密性、完整性与可用性方面提供支持。"

总体来讲,Docker 的安全性能还不错,只是这还是一项年轻的技术、因此 目前尚未积累起能够满足实际生产需求的完整工具生态系统。

其实如果要谈论 Docker 的安全性,我们就要谈论三点:命名空间 (Namespace);Docker 程序本身的抗攻击性和加固内核安全性来影响容器的 安全性。

1、命名空间(Namespace):Docker 有五个命名空间:进程、网络、挂 载、宿主和共享内存,为了隔离有问题的应用,Docker 运用 Namespace 将进 程隔离,为进程或进程组创建已隔离的运行空间,为进程提供不同的命名空间视 图。这样,每一个隔离出来的进程组,对外就表现为一个 container(容器)。需 要注意的是,Docker 让用户误以为自己占据了全部资源,但这并不是"虚拟机"。

内核 namesapce 从内核 2.6.15 之后被引入,距今已经 5 年了,在很多大 型生产系统中被验证。他们的设计和灵感提出的时间更早,openvz 项目利用 namespace 重新封装他们的内核,并合并到主流内核中。openvz 最早的版本 是 2005 年的,所以他们的设计和实现都很成熟。

2、Docker 程序本身的抗攻击性:Docker 允许你在主机和容器之间共享文 件夹,这就容易让容器突破资源限制,那么容器就可以对主机做任何更改了。但 实际上,几乎所有虚拟机系统都有在物理主机和虚拟机之间共享资源的限制,所 以这一层的安全性,需要你自己把控。

3、加固内核安全性:默认情况下,Docker 启动的容器只使用一部分内核 capabilities,就算攻击者在容器中取得了 root 权限,他能做的破坏也少了,也 不能获得主机的更高权限。

由此我们可以说:Docker 还是比较安全的,但是你要注意使用在容器中使 用非 root 权限允许进程。

目前来说,Docker 的主要应用场景为:

面向开发人员:快速开发、交付应用程序。开发环境的机器通常内存比较小, 之前使用虚拟的时候,经常需要为开发环境的机器加内存,而现在 Docker 可以 轻易的让几十个服务在 Docker 中跑起来。

面向运维人员:降低运维成本。正如通过虚拟机来整合多个应用,Docker 隔离应用的能力使得 Docker 可以整合多个服务器以降低成本。Docker 通过镜 像机制,将你的代码和运行环境直接打包成镜像,扔到容器启动即可。

面向企业: Docker 本身就发家于 PaaS,在 Docker 面向企业,是可以提 供 Paas 层的实现;比如,扩展现有的 OpenShift 或 Cloud Foundry 平台来搭 建自己的 PaaS 环境。

Docker “集装箱”

【七】评说 Docker

Chris Swan(银行业的技术专家,曾经有十几年的时间在从事金融服务业): Docker 公司已经建立了清晰的道路,即发展核心能力(libcontainer)、跨业务 管理(libswarm)和容器间消息(libchan)。

Docker 公司表达了利用自身生态系统的意愿。随着时间的推移,虚拟机和 容器(Docker 中的“运行”部分)之间的区别很可能变得不再那么重要,这将 使注意力转到“构建(build)”和“交付(ship)”方面。

马全一(Docker 中文社区创始人之一):Docker 一定会成为云计算和大数 据领域的重要成员之一。

Docker 的出现使得以 Docker 容器为单位的云平台和 Docker 容器为载体 的交易平台成为可能。任何后端的服务程序,都可以封装在 Docker 容器中进行 销售、分发和部署,后端开发者能像 Mobile App 开发者那样去做自己的产品 来获利。随着 Golang 的发展,一定会有以 Golang 为开发语言、Docker 为运 行载体的新大数据平台,成为 Hadoop 平台的竞争者。

Solomon Hykes(Docker 之父):“建立一个为所有生产软件共有的系统, 使用一种被广泛接受的方式,让它可以很好的运行和扩展,让它可以被所有人依 赖,然后将它视为理所当然的存在,并使用它创造自己的奇迹,这是个挑战。

Docker,一个迅速走红,并在技术领域赢得一片好评的一款应用。尽管 Docker 目前还不够完善,但已经有很多厂商已经开始使用。同时一批围绕 Docker 建立起来的初创企业已经形成,学习 Docker 风气正盛。可以预见在不 远的未来,Docker 和 CaaS 会获得更多的人肯定,越来越多的企业愿意使用 Docker 这个应用。

据 Docker 内部人员表示:在 Docker 1.0 正式发布之前,就已经有 3 家主要银 行将其投入到生产应用中

附录一 、Docker 基本命令

Docker ps 用来查看正在运行中的容器。Docker ps 命令的常用参数(及组合)如下。-a: 查看所有容器,包括已经停止运行的。-l: 查看刚刚启动的容器。
-q: 只显示容器 ID-l -q: 则可以返回刚启动的容器 ID。Docker stop 用来停止运行中的容器,同时你还可以用 Docker start 来重新启 动一个已经停止的容器。Docker restart 可以重启一个运行中的容器。这就相当于对一个容器先进行 stop 再 start。

 

Docker 服务对应的版本查看
# sudo Docker version
Docker 命令帮助
#sudo Docker //查看 Docker 的所有命令#sudo Docker command --help //查看单个 Docker 命令的帮助,如 Docker ru --help

附录二、Docker 最新版(1.8)下载地址:

Ubuntu/Debian: curl -sSL https://get.Docker.com | shLinux 64bit binary: https://get.Docker.com/builds/Linux/x86_64/Docker-1.8.0Darwin/OSX 64bit client binary: https://get.Docker.com/builds/Darwin/x86_64/Docker-1.8.0Darwin/OSX 32bit client binary: https://get.Docker.com/builds/Darwin/i386/Docker-1.8.0Linux 64bit tgz: https://get.Docker.com/builds/Linux/x86_64/Docker-1.8.0.tgzWindows 64bit client binary: https://get.Docker.com/builds/Windows/x86_64/Docker-1.8.0.exeWindows 32bit client binary: https://get.Docker.com/builds/Windows/i386/Docker-1.8.0.exe

相关网站链接 :

Docker 官网
Mac 安装方式
Linux 安装方式

Windows 安装方式

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/613955.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Electron中调用dll

截止目前Electron的官方稳定版本已经更新到了28.1.1。我在创建Electron项目时用的28.0.0版本,后面在项目中有用到调用dll方法的需求,大致的实现就是将后端给的dll文件引入到项目中,安装ffi-napi依赖,然后进行使用。但是在Electron…

Vue3 + TS + Element-Plus —— 项目系统中封装表格+搜索表单 十分钟写五个UI不在是问题

前期回顾 纯前端 —— 200行JS代码、实现导出Excel、支持DIY样式,纵横合并-CSDN博客https://blog.csdn.net/m0_57904695/article/details/135537511?spm1001.2014.3001.5501 目录 一、🛠️ newTable.vue 封装Table 二、🚩 newForm.vue …

pandas笔记:找出在一个dataframe但不在另一个中的index

1 问题描述 假设我们有两个dataframe(这一段代码)来自transbigdata 笔记:官方文档案例1(出租车GPS数据处理)-CSDN博客 data tbd.clean_outofshape(data, sz, col[Lng, Lat], accuracy500) data data2 tbd.clean_ta…

【Vue3】2-3 : 选项式API的编程风格与优势

本书目录:点击进入 一、选项式API - 三大优势 ▶ 只有一个参数,不会出现参数顺序的问题,随意调整配置的位置 传入的是一个对象,没有参数顺序问题 对比反面教材: ▶ 非常清晰,语法化特别强 ▶ 非常…

华为“纯血”鸿蒙加速进场 高校、企业瞄准生态开发新风口

近日,华为终端BG CEO、智能汽车解决方案BU董事长余承东在2024年新年信中提出,开启华为终端未来大发展的新十年。 他特别提到,未来要构建强大的鸿蒙生态,2024年是原生鸿蒙的关键一年,将加快推进各类鸿蒙原生应用的开发…

CSS3中transform2D变形详解

CSS3变形 在CSS3中,动画效果包括3个部分: 变形(transform)过渡(transition)动画(animation) 在实际开发中,有时需要实现元素的各种变形效果,如平移,缩放,旋转,倾斜等。 在CSS3中&#xff0c…

基于自适应遗传算法的车间调度matlab仿真,可以任意调整工件数和机器数,输出甘特图

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1 编码与初始化 4.2 适应度函数 4.3 遗传操作 4.4 自适应机制 4.5 终止条件 5.完整程序 1.程序功能描述 基于自适应遗传算法的车间调度matlab仿真,可以任意调整工件数和机器数,输出甘…

【STM32】HAL库的STOP低功耗模式UART串口唤醒BUG,第一个接收字节出错的问题(尚未解决,疑难杂症)

【STM32】HAL库的STOP低功耗模式UART串口唤醒BUG,第一个接收字节出错的问题(尚未解决,疑难杂症) 文章目录 BUG复现调试代码推测原因及改进方案尝试中断时钟供电外设唤醒方式校验码硬件问题 切换到STOP0模式尝试最终结论和猜想附录…

[SpringBoot]如何在一个普通类中获取一个Bean

最近在项目中出现了一个这种情况:我一顿操作猛如虎的写了好几个设计模式,然后在设计模式中的类中想将数据插入数据库,因此调用Mapper持久层,但是数据怎么都写不进去,在我一顿操作猛如虎的查找下,发现在普通…

在WindowsServer2012中部署war项目

目录 前言 一.jdk安装 二.Tomact安装 三.MySQL安装 ​编辑​编辑​编辑​编辑​编辑​编辑​编辑 四.开放端口号 MySQL开放端口号 Tomact开放端口号 ​编辑 五.项目部署 1.将war放置在tomact中 2.配置项目sql脚本 3.最终效果 前言 安装Java开发工具包&#xff08…

【libpcap】获取报文pcap的ns级别的时间戳

1.安装libpcap 首先&#xff0c;下载最新的 libpcap 源代码。你可以从 tcpdump.org 获取最新版本 1 解压下载的libpcap tar -zxvf libpcap-version.tar.gz 2 进入解压目录进行安装 cd libpcap-version ./configure make sudo make install2 解析报文时间戳 #include <pca…

SpringMVC 学习博客记录

文章目录 Servlet请求转发和请求包含RequestDispatcher HandlerInterceptor组件实际运用场景 HandlerMapping&RequestMappingInfo(HandlerMapping)HandlerExecutionChainHandlerAdapter源码学习知识点博客记录 Servlet请求转发和请求包含 RequestDispatcher Request#getR…

文件上传进阶绕过技巧(一)和靶场实战

★★免责声明★★ 文章中涉及的程序(方法)可能带有攻击性&#xff0c;仅供安全研究与学习之用&#xff0c;读者将信息做其他用途&#xff0c;由Ta承担全部法律及连带责任&#xff0c;文章作者不承担任何法律及连带责任。 0、环境准备 请移步《文件上传靶场实战&#xff1a;upl…

SPI接口协议

SPI接口协议 SPI(Serial Peripheral Interface)是由Motorola公司定义的接口协议标准&#xff0c;串行外设接口(SPI)是微控制器和外围IC&#xff08;如传感器、 ADC、 DAC、移位寄存器、 SRAM等&#xff09;之间使用最广泛的接口之一。SPI是一种同步、全双工、主从式接口&#x…

你了解计算机网络的发展历史吗?

1.什么是计算机网络 计算机网络是指将一群具有独立功能的计算机通过通信设备以及传输媒体被互联起来的&#xff0c;在通信软件的支持下&#xff0c;实现计算机间资源共享、信息交换或协同工作的系统。计算机网络是计算机技术与通信技术紧密结合的产物&#xff0c;两者的迅速发展…

爬虫之牛刀小试(三):爬取中国天气网全国天气

天气网&#xff1a; import requests from bs4 import BeautifulSoup import time from pyecharts.charts import Bar from pyecharts import options as optsurl_hb http://www.weather.com.cn/textFC/hb.shtml url_db http://www.weather.com.cn/textFC/db.shtml url_hd …

跨境电商之店群模式:Shopee店群是什么?卖家如何做好店群?

今天跟大家谈一谈越来越火爆的店群模式&#xff0c;现在大部分做跨境电商的卖家都会建立自己的店群&#xff0c;其中很多做 Shopee的卖家时常会听到一个名词“ Shopee 店群模式”&#xff0c;但很多人都不知道怎么去做&#xff0c;或者在犹豫要不要做&#xff0c;所以东哥我会从…

谈谈Spring Bean

一、IoC 容器 IoC 容器是 Spring 的核心&#xff0c;Spring 通过 IoC 容器来管理对象的实例化和初始化&#xff08;这些对象就是 Spring Bean&#xff09;&#xff0c;以及对象从创建到销毁的整个生命周期。也就是管理对象和依赖&#xff0c;以及依赖的注入等等。 Spring 提供…

【Web】CTFSHOW PHP文件包含刷题记录(全)

温故知新。 目录 web78 web79 web80 web81 web82 web83 web84 web85 web86 web87 web88 web78 伪协议base64编码直接读出文件内容就行 ?filephp://filter/convert.base64-encode/resourceflag.php web79 一眼data伪协议包含php脚本 ?filedata://text/plain,<…

Netty-Netty组件了解

EventLoop 和 EventLoopGroup 回想一下我们在 NIO 中是如何处理我们关心的事件的&#xff1f;在一个 while 循环中 select 出事 件&#xff0c;然后依次处理每种事件。我们可以把它称为事件循环&#xff0c;这就是 EventLoop 。 interface io.netty.channel. EventLoo…