Docker容器初始

华子目录

  • docker简介
  • 虚拟化技术
    • 硬件级虚拟化
    • 硬件级虚拟化历史
    • 操作系统虚拟化历史
    • 基于服务的云计算模式
  • 什么是docker
    • Docker和传统虚拟化方式的不同之处
    • 为什么要使用docker?
      • Docker 在如下几个方面具有较大的优势
    • 对比传统虚拟机总结
    • docker应用场景
    • docker改变了什么
  • 基本概念
    • docker镜像
    • docker容器
      • 注意
    • docker仓库

docker简介

  • 随着生产力得发展尤其是弹性架构得广泛应用(如微服务),许多一流开发者都将应用托管到了应用容器上,比如Google,微软,亚马逊,腾讯,阿里,京东和新浪。
  • 在这里插入图片描述

虚拟化技术

虚拟化一般分为硬件级虚拟化操作系统级虚拟化

硬件级虚拟化

  • 硬件级虚拟化是运行在硬件之上的虚拟化技术,它得管理软件也就是我们通常说的 hypervisor 或者 virtual machine monitor,它需要模拟的就是一个完整的操作系统,也就是我们通常所说的基于 Hyper-V 的虚拟化技术。VMWare,Xen,VirtualBox,亚马逊和阿里云都是用的这种技术。
  • 操作系统级虚拟化是运行在操作系统之上的,它模拟的是运行在操作系统上的多个不同进程,并将其封装在一个密闭的容器里面,也称为容器化技术docker正是容器虚拟化中目前最流行的一种实现

硬件级虚拟化历史

  • 19 世纪 60 年代:美国出现了第一个虚拟化系统,它是由 IBM 开发的 CP-40Mainframes 系统, 虽然这个系统只是在实验室使用,但却为后来的 CP-67 系统奠定了基础。在那个时代,虚拟化系统主要由通用,贝尔实验室和 IBM 主导研发。

  • 1987 年:一个非常牛逼的公司 InsigniaSolutions 演示了一个称为 SoftPC 的软件模拟器,这 个模拟器允许用户在 UnixWorkstations 上运行 DOS 应用。在此之前这是不可能办到的,当 时一个可以运行MSDOS 的个人电脑需要 1,500 美金,而通过 SoftPC 模拟之后,可降低到 500 美金。可以看出,当时
    的需求就是在大型工作站上运行微软的 DOS。到了 1989 年的时 候,InsigniaSolutions 发布了 Mac 版的 SoftPC,使苹果用户不仅能运行 DOS,还能运行 Windows 操作系统。

  • 1997 年:随着 SoftPC 的一炮而红,其他虚拟化公司如雨后春笋般的出现了。在 1997 年,苹果开发了virtualPC,后来又卖给了 Connectix。

  • 1998 年:真正的王者 VMWare 出现了,他们在 1999 年开始销售 VMWare workstation,也就是我们很多人使用过得桌面版的虚拟机。

  • 2001 年:VMWare 又发行了 ESX 和 GSX,也就是我们现在经常使用的 ESX-i 的前身。

  • 2003 年:之前所说的 Connectix 被微软收购,后续推出了 Microsoft VirualPC,再之后就没什么音讯了。同年 VMWare 也被 EMC 收购,成为 EMC 迄今最成功的一笔收购。就在这一年,一个开源的虚拟化项目 Xen 启动了,并在 2007 年被 Citrix 收购。

操作系统虚拟化历史

  • 1982 年:你一定会很惊讶,第一个操作系统级的虚拟化技术是什么。答案就是 chroot,直到现在我们依然在使用的一个系统调用。这个系统调用会改变运行进程的工作目录,并且只能 在这个目录里面工作。这种操作其实就是一种文件系统层的隔离。
  • 2000 年:FreeBSD jail,真正意义上的第一个功能完整的操作系统级虚拟化技术。所以,真正的容器化技术出现到现在已经过去了 16 年,并不是几年的时间。
  • 2005 年:OpenVZ,这是 linux 平台上的容器化技术实现,同时也是 LXC,即 docker 最初使 用的容器技术核心实现。
  • 2008 年:LXC 发布,这是 docker 最初使用的具体内核功能实现。
  • 2013 年:Docker 发布,可以看出,docker 本身是使用了 LXC,同时封装了其他的一些功能。

Docker 的成功,与其说是技术的创新,还不如说是一次组合式的创新。

基于服务的云计算模式

我们知道传统的服务器或者电脑主机,基本都是一锤子买卖,商家卖给你之后基本就很难再从消费者身上获得其他收入。随着云的概念出现,越来越多的厂商意识卖硬件是不可能获得长期利益的只有服务才是可持续的赢利点。因此,在2010年左右,出现了以大批提供云服务的公司。总体来说基本都可以归为下面几大类的一种或多种

  • 基础设施即服务(Infrastructure as a service),通常指的是在云端为用户提供基础设施,如:虚拟机、服务器、存储、负载均衡、网络等等。亚马逊的 AWS 就是这个领域的佼佼者,国内则 以阿里云为首
  • 平台即服务(Platform as a service),通常指的是在云端为用户提供可执行环境、数据库、网站服务器、开发工具等等。国外的 OpenShift,RedHat,ClouderaCloudFoundry,GoogleAppEngine 都是这个领域的,当然还有一个非常有名的公司,那就是 dotCloud,后续会再介绍一下这个公 司。
  • 软件即服务(Software as a service),通常指的是在云端为用户提供软件,如 CRM 系统,邮件系统,在线协作,在线办公等等。比如微软就把自己的 Office 搬到了云端,国内的有道、麦 客、Tower 都是属于这个领域的。

一般认为这三种模式,是最基本的云服务模式,其分层结构如下图:
在这里插入图片描述

什么是docker

  • Docker 是一个开源项目, 诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。它基于Google 公司推出的 Go 语言实现。 项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议, 项目代码在 GitHub 上进行维护。
  • Docker 自开源后受到广泛的关注和讨论,以至于 dotCloud 公司后来都改名为 Docker Inc。
  • Redhat 已经在其 RHEL6.5 中集中支持 Docker;Google 也在其 PaaS 产品中广泛应用。Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案。 Docker 的基础是 Linux容 ( LXC)等技术。在 LXC 的基础上 Docker 进行了进一步的封装, 让用户不需要去关心容器的管理,使得操作更为简便。用户操作Docker 的容器就像操作一个快速轻量级的虚拟机一 样简单。
  • Docker 是一个开源的应用容器引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在本地编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、baremetal、OpenStack 集群和其他的基础应用平台。
  • 简单的理解,Docker类似于集装箱,各式各样的货物,经过集装箱的标准化进行托管,而集装箱和集装箱之间没有影响。也就是说,Docker平台就是一个软件集装箱化平台,这就意味着我们自己可以构建应用程序,将其依赖关系一起打包到一个容器中,然后这个容器就很容易运送到其他的机器上进行运行,而且非常易于装载、复制、移除,非常适合软件弹性架构。
  • 在这里插入图片描述
  • 总而言之,Docker 是一个开放平台,使开发人员和管理员可以在称为容器的松散隔离的环境中构建镜像、交付和运行分布式应用程序。以便在开发、QA 和生产环境之间进行高效的应用程序生命周期管理。

Docker和传统虚拟化方式的不同之处

在这里插入图片描述

  • 在这里插入图片描述

为什么要使用docker?

  • 作为一种新兴的虚拟化方式, Docker跟传统的虚拟化方式相比具有众多的优势。首先, Docker 容器的启动可以在秒级实现,这相比传统的虚拟机方式要快得多。其次, Docker 对系统资源的利用率很高一台主机上可以同时运行数千个 Docker 容器。容器除了运行其中应用外,基本不消耗额外的系统资源,使得应用的性能很高,同时系统的开销尽量小。
  • 传统虚拟机方式运行 10 个不同的应用就要起 10 个虚拟机而 Docker 只需要启动 10 个隔离的应用即可。

Docker 在如下几个方面具有较大的优势

  • 更快速的交付和部署

    • 对开发和运维( devop)人员来说,最希望的就是一次创建或配置,可以在任意地方正常运行。开发者可以使用一个标准的镜像来构建一套开发容器,开发完成之后, 运维人员可以直接使用这个容器来部署代码。 Docker 可以快速创建容器,快速迭代应用程序,并让整个过程全程。可见,使团队中的其他成员更容易理解应用程序是如何创建和工作的。 Docker容器很轻很快!容器的启动时间是秒级的,大量地节约开发、 测试、部署的时间
  • 更高效的虚拟化

    • Docker 容器的运行不需要额外的 hypervisor 支持,它是内核级的虚拟化,因此可以实现更高的性能和效率。
  • 更轻松的迁移和扩展

    • Docker 容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑、服务器等。 这种兼容性可以让用户把一个应用程序从一个平台直接迁移到另外一个。
  • 更简单的管理

    • 使用 Docker,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分发和更新,从而实现自动化并且高效的管理。

对比传统虚拟机总结

特性容器虚拟机
启动秒级分钟级
硬盘使用一般是MB一般为GB
性能接近原生弱于
系统支持量单机支持上千个容器一般几十个

docker应用场景

  • 简化配置

    • 虚拟机的最大好处是能在你的硬件设施上运行各种配置不一样的平台(软件、系统),Docker在降低额
      外开销的情况下提供了同样的功能。它能让你将运行环境和配置放在代码中然后部署,同一个Docker的
      配置可以在不同的环境中使用,这样就降低了硬件要求和应用环境之间耦合度。
  • 代码流水线(Code Pipeline)管理:

    • 前一个场景对于管理代码的流水线起到了很大的帮助。代码从开发者的机器到最终在生产环境上的部署,需要经过很多的中间环境。而每一个中间环境都有自己微小的差别,Docker给应用提供了一个从开发到上线均一致的环境,让代码的流水线变得简单不少。
    • 在这里插入图片描述
  • 提高开发效率

    • 不同的开发环境中,我们都想把两件事做好。一是我们想让开发环境尽量贴近生产环境,二是我们想快速搭建开发环境。
    • 使用Docker非常简单的就能够实现这两点,而且哪怕是开发环境的机器配置一般的情况下搭建多个生成服务应用。一台一般配置服务器或开发机也能轻松的跑起多个Docker应用,而无需额外增加机器配置。因为Docker有个非常NB的特性,拥有虚拟化的特性,而几乎没有额外的开销。
    • 在这里插入图片描述
  • 隔离应用

    • 很多情况下,我们需要在一台服务器上运行多个不同的应用,比如上面提到的提高开发效率的场景等。
    • 我们经常需要考虑三点,一是因为要降低成本而进行服务器整合,二是将一个整体式的应用拆分成松耦合的单个服务(比如微服务架构),三是还需要考虑应用之间的兼容性。而对于Docker来说,支持起来就非常简单了。同一台机器,我可以同时运行N个Docker web应用,托管到不同的Web服务器(Kestrel、Ngnix、Tomcat),而无需担心他们会搞起3Q大战,也无需担心我的开发机器会跑不起来
    • 在这里插入图片描述
  • 整合服务器

    • 正如通过虚拟机来整合多个应用,Docker隔离应用的能力使得Docker可以整合多个服务器以降低成本。由于没有多个操作系统的内存占用,以及能在多个实例之间共享没有使用的内存,Docker可以比虚拟机提供更好的服务器整合解决方案。
    • 这就意味着资源得到更有效的利用——可以做更多衣服,而且还没有边角料,成本还更低。
    • 在这里插入图片描述
  • 调试能力

    • Docker提供了很多的工具,这些工具不一定只是针对容器,但是却适用于容器。它们提供了很多的功能,包括可以为容器设置检查点、设置版本和查看两个容器之间的差别,这些特性可以帮助调试Bug。
  • 多租户环境

    • 在多租户的应用中,它可以避免关键应用的重写。比如IoT(物联网)的应用中,开发一个快速、易用的多租户环境。这种多租户的基本代码非常复杂,很难处理,重新规划这样一个应用不但消耗时间,也浪费金钱。
    • 使用Docker,可以为每一个租户的应用层的多个实例创建隔离的环境,这不仅简单而且成本低廉,当然这一切得益于Docker环境的启动速度和其高效的diff命令。
    • 就如同我们现在写了一个不支持多租户的业务程序,而实际的业务中经常会出现需要支持多租户或者有新客户需要使用的场景,这是我们通常的简单做法是——部署一套新的代码。当站点达到一定量的适合,要么重写程序,要么维护人员Game over。
  • 快速部署

    • 在虚拟机之前,引入新的硬件资源需要消耗几天的时间。虚拟化技术(Virtualization)将这个时间缩短到了分钟级别。而Docker通过为进程仅仅创建一个容器而无需启动一个操作系统,再次将这个过程缩短到了秒级。
    • 你可以在服务器中或云端创建销毁资源而无需担心重新启动带来的开销。通常情况下,服务器的资源利用率只有30%,而通过使用Docker并进行有效的资源分配可以提高资源的利用率。
    • 在这里插入图片描述
  • Docker 实现了微服务架构,也让遗留的单体应用转变为现代应用

  • 在这里插入图片描述

docker改变了什么

  • Docker改变了云服务,使云服务的共融共通的理想逐步成为了可能。并且Docker 已经是云策略的一部分,许多开发者正在计划使用 Docker 将业务迁移到云端。另外,为了避免被云服务供应商绑定,Docker成为很多开发者的首选。
  • Docker改变了产品交付,为产品的整个生命周期提供了一整套的解决方案和流程。
  • Docker改变了开发方式,提供了简化的环境配置、封装的运行环境以及统一的环境。并且提供了快速部署的方式。
  • Docker改变了测试,多版本测试变得极为方便,快速构建测试环境也变得更加简单并且无需开发人员干预或者搭建。
  • Docker改变了运维,环境的一致性让运维变得更加简单,同时热更新的支持让运维不再需要半夜加班部署更新,更新可以随时进行。当出现重大问题时,还能快速回滚到指定版本。
  • Docker改变了架构,自动化扩容支持让架构变得更加简单,分布式系统也更加易于搭建和支持。同时遗留的单体应用也很易于转变为现代应用。

总之,在某种程度上,Docker改变了产品开发中的一些游戏规则。虽然Docker是一项技术,但是它也带来了新的思维,新的流程和工作方法,Docker在推动行业的发展,Docker已经在改变世界,并且在逐步的变为事实……
在这里插入图片描述

基本概念

docker包括三个基本概念

  • 镜像(image)
  • 容器(container)
  • 仓库(repository)

docker镜像

镜像一个特殊的文件系统docker镜像就是一个只读的模板

  • 操作系统分为内核和用户空间。对于 Linux 而言,内核启动后,会挂载 root 文件系统为其提供用户空间支持。而 Docker 镜像(Image),就相当于是一个 root 文件系统。
  • Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。
  • 镜像不包含任何动态数据,其内容在构建之后也不会被改变。
  • Docker 设计时,就充分利用 Union FS 的技术,将其设计为分层存储的架构镜像实际是由多层文件系统联合组成。
  • 镜像构建时,会一层层构建,前一层是后一层的基础。每一层构建完就不会再发生改变,后一层上的任何改变只发生在自己这一层。
  • 比如,删除前一层文件的操作,实际不是真的删除前一层的文件,而是仅在当前层标记为该文件已删除。 在最终容器运行的时候,虽然不会看到这个文件,但是实际上该文件会一直跟随镜像。
  • 因此,在构建镜像的时候,需要额外小心,每一层尽量只包含该层需要添加的东西,任何额外的东西应该在该层构建结束前清理掉。
  • 分层存储的特征还使得镜像的复用、定制变的更为容易。甚至可以用之前构建好的镜像作为基础层,然后进一步添加新的层,以定制自己所需的内容,构建新的镜像。

docker容器

容器镜像运行时的实体docker利用容器来运行应用。

  • 镜 像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等 。
  • 容器的实质是进程但与直接在宿主执行的进程不同容器进程运行于属于自己的独立的命名空间。前面讲过镜像使用的是分层存储,容器也是如此。
  • 容器存储层的生存周期和容器一样容器消亡时,容器存储层也随之消亡。因此,任何保存于容器存储层的信息都会随容器删除而丢失。
  • 按照 Docker 最佳实践的要求,容器不应该向其存储层内写入任何数据 ,容器存储层要保持无状态化。
  • 所有的文件写入操作,都应该使用数据卷(Volume)、或者绑定宿主目录,在这些位置的读写会跳过容器存储层直接对宿主(或网络存储)发生读写,其性能和稳定性更高。
  • 数据卷的生存周期独立于容器容器消亡,数据卷不会消亡。因此, 使用数据卷后,容器可以随意删除、重新 run,数据却不会丢失。
  • 在这里插入图片描述

注意

容器在整个应用程序生命周期工作流中提供以下优点:隔离性、可移植性、灵活性、可伸缩性和可控性。 最重要的优点是可在开发和运营之间提供隔离

docker仓库

仓库:集中存放镜像文件的地方

  • 镜像构建完成后,可以很容易的在当前宿主上运行,但是如果需要在其他服务器上使用这个镜像我们就需要一个集中的存储、分发镜像的服务,Docker Registry 就是这样的服务。
  • 一个 Docker Registry 中可以包含多个仓库(Repository);每个仓库可以包含多个标签(Tag);每个标签对应一个镜像。
  • 所以说,镜像仓库Docker 用来集中存放镜像文件的地方类似于我们之前常用的代码仓库
  • 通常,一个仓库会包含同一个软件不同版本的镜像,而标签就常用于对应该软件的各个版本 。
  • 我们可以通过 <仓库名>:<标签> 的格式来指定具体是这个软件哪个版本的镜像如果不给出标签,将以latest 作为默认标签。
  • 仓库名:仓库名可以是两段式名称,即<用户名>/<软件名>
    • 常见的仓库名格式有以下几种:

    • 仓库名:例如ubuntu、nginx。

    • 域名/仓库名:例如registry.example.com/nginx

    • 域名:端口/仓库名:例如docker.example.com:5000/nginx

  • 仓库分为公开仓库( Public)和私有仓库( Private) 两种形式
  • 这里补充一下 Docker Registry 公开服务和私有 Docker Registry 的概念:
    • Docker Registry 公开服务是开放给用户使用、允许用户管理镜像的 Registry 服务。
    • 一般这类公开服务允许用户免费上传、下载公开的镜像,并可能提供收费服务供用户管理私有镜像。
    • 最常使用的 Registry 公开服务官方的 Docker Hub,这也是默认的 Registry,并拥有大量的高质量的官方镜像网址为https://hub.docker.com/
    • 在国内访问 Docker Hub 可能会比较慢国内也有一些云服务商(如腾讯云,阿里云等)提供类似于 Docker Hub 的公开服务, 可以提供稳定的国内访问。
    • 除了使用公开服务外,用户还可以在本地搭建私有 Docker RegistryDocker 官方提供了 Docker Registry 镜像,可以直接使用做为私有 Registry 服务。
    • 当用户创建了自己的镜像之后就可以使用 push 命令将它上传到指定的公有或者私有仓库。这样用户下次在另外一台机器上使用该镜像时,只需要将其从仓库上 pull下来就可以了。
      • 可以看出, Docker 利用仓库管理镜像的设计理念与 Git 代码仓库的概念非常相似,实际上 Docker 设计上借鉴了 Git 的很多优秀思想

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

抖音小店和抖音橱窗有什么区别?普通人最适合做哪个?

大家好&#xff0c;我是电商糖果 说起抖音卖货&#xff0c;很多人都会搞不清楚抖音小店和抖音橱窗有什么不同。 甚至有的朋友将他们认为是一个项目。 这里糖果就帮大家仔细的分辨一下&#xff0c;想在抖音卖货的普通人&#xff0c;看看它们谁最适合自己。 来百度APP畅享高清…

MySQL中的基本SQL语句

文章目录 MySQL中的基本SQL语句查看操作创建与删除数据库和表修改表格数据库用户管理 MySQL中的基本SQL语句 查看操作 1. 查看有哪些数据库 show databases; 2.切换数据库 use 数据库名;比如切换至 mysql数据库 use mysql;3.查看数据库中的表 show tables;4.查看表中…

干货分享 | TSMaster如何同时记录标定变量和DBC信号至BLF文件

客户在使用TSMaster软件标定功能时&#xff0c;有如下使用场景&#xff1a;将DBC文件中的信号与A2L文件中的标定变量同时记录在一个记录文件。针对此应用场景&#xff0c;TSMaster软件提供了一种方法来满足此需求。今天重点和大家分享一下关于TSMaster软件中同时记录标定变量和…

【计算机组成】计算机组成与结构(四)

上一篇&#xff1a;【计算机组成】计算机组成与结构&#xff08;三&#xff09; &#xff08;7&#xff09;存储系统 计算机采用分级存储体系的主要目的是为了解决存储容量、成本和速度之间的矛盾问题。 两级存储:cache-主存、主存-辅存(虚拟存储体系) 局部性原理 ◆ 局部性…

openssl 升级1.1.1.1k 到 3.0.13

下载 https://www.openssl.org/source/ tar -zxvf openssl-3.0.13.tar.gzcd openssl-3.0.13/./config enable-fips --prefix/usr/local --openssldir/usr/local/opensslmake && make install 将原有openssl备份 mv /usr/bin/openssl /usr/bin/openssl.bak mv /usr/i…

ElasTool v3.0 程序:材料弹性和机械性能的高效计算和可视化工具包

分享一个材料弹性和机械性能的高效计算和可视化工具包&#xff1a; ElasTool v3.0。 感谢论文的原作者&#xff01; 主要内容 “弹性和机械性能的高效计算和可视化对于材料的选择和新材料的设计至关重要。该工具包标志着材料弹性和机械性能计算分析和可视化方面的重大进步…

Linux脚本打开多个终端执行不懂程序(树莓派)

1、首先需要安装gnome-terminal sudo apt install gnome-terminal 2、然后编写一下代码到RunApp.sh脚本&#xff0c;设置窗口上方名字&#xff08;Qt5.8.0写的Server和Client&#xff09; #!/bin/sh gnome-terminal --title "Client" -- bash -c "./Client&q…

算法打卡day24|回溯法篇04|Leetcode 93.复原IP地址、78.子集、90.子集II

算法题 Leetcode 93.复原IP地址 题目链接:93.复原IP地址 大佬视频讲解&#xff1a;复原IP地址视频讲解 个人思路 这道题和昨天的分割回文串有点类似&#xff0c;但这里是限制了只能分割3次以及分割块的数字大小&#xff0c;根据这些不同的条件用回溯法解决就好啦 解法 回溯…

二维码门楼牌管理应用平台建设:提升城市管理效率的新路径

文章目录 前言一、二维码门楼牌管理应用平台的建设背景二、人工数据审核的重要性三、地址匹配校验的作用四、数据修改后的状态管理五、二维码门楼牌管理应用平台的未来展望 前言 随着城市管理的不断升级&#xff0c;二维码门楼牌管理应用平台正逐渐成为城市管理的新宠。本文将…

今天简单聊聊容器化

什么是容器化 容器化&#xff08;Containerization&#xff09;是一种软件开发和部署的方法&#xff0c;其核心思想是将应用程序及其所有依赖项打包到一个独立的运行环境中&#xff0c;这个环境被称为容器。容器化技术使得应用程序可以在不同的计算环境中以一致的方式运行&…

制作一个RISC-V的操作系统七-UART初始化(UART NS16550A 规定 目标 发送数据 代码 extern)

文章目录 UARTNS16550A规定目标发送数据代码extern UART 对应到嵌入式开发中&#xff0c;qemu模拟的就是那块开发板&#xff08;硬件&#xff09; 电脑使用qemu时可以理解为qemu模拟了那块板子&#xff0c;同时那块板子与已经与你的电脑相连接了&#xff08;我们对应的指定的内…

尽可能使用清晰、统一的方式初始化所有对象:列表初始化。【C++】

不管是为了统一性&#xff0c;还是避免发生窄化转换&#xff0c;尽可能使用初始化列表。 说明哪些对象可以使用列表初始化&#xff1f;代码演示 说明 C11 引入了列表初始化&#xff08;也称为统一初始化或初始化列表&#xff09;&#xff0c;它是一种使用花括号 {} 来初始化对…

【开奖】京东云活动大更新 全网比价 轮盘抽奖 云服务器选购推荐 阿里云 腾讯云 京东云采购季活动大盘点

已开奖&#xff0c;本次奖品&#xff1a;4核16G名额&#xff1a;首次抽奖 1名→3名&#xff01; 公布幸运儿&#xff1a;-阿纬-、不问青春、灰飞の慕沐 开奖地址&#xff1a; 【云服务器推荐】京东云活动大更新 另有开奖环节https://www.bilibili.com/video/BV1Vu4m1u7Qd 《…

通过rmi实现远程rpc(可以认为java自带Dubbo RPC)

背景&#xff1a; 发现公司几个运行10年的游戏&#xff0c;用的竟然是rmi&#xff0c;而我只听说过dubbo 和 基于netty的rpc&#xff0c;于是就补充了下rmi。 其次&#xff0c;是最近对于跨服的思考&#xff0c;如何避免回调也需要用同步写法&#xff0c;rmi比较适合。 1)api…

【智能算法】飞蛾扑火算法(MFO)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2015年&#xff0c;Mirjalili等人受到飞蛾受到火焰吸引行为启发&#xff0c;提出了飞蛾算法(Moth-Flame Optimization&#xff0c;MFO)。 2.算法原理 2.1算法思想 MFO基于自然界中飞蛾寻找光源的…

(Windows)YOLOv8成功运行DCNv4报错总结

介绍 DCNv4是可变形卷积的第四版本也是今年2024年1月份公示的&#xff0c;其在网络结构上和DCNv3是差不多的&#xff0c;最突出的优点的减小了内存访问带来的负担&#xff0c;加快收敛的速度&#xff0c;在不失精度的情况下能把速度大幅度提升&#xff0c;在论文作者的实验里面…

yolov5交互式界面 V5.0-6.0版本通用界面-yolo-pyqt-gui(通用界面制作+代码)

往期热门博客项目回顾&#xff1a; 计算机视觉项目大集合 改进的yolo目标检测-测距测速 路径规划算法 图像去雨去雾目标检测测距项目 交通标志识别项目 yolo系列-重磅yolov9界面-最新的yolo 姿态识别-3d姿态识别 深度学习小白学习路线 yolo GUI OYQT界面 YOLOv5…

美国socks5动态IP代理如何提升网络效率?

在探讨美国socks5代理动态IP的奥秘之前&#xff0c;我们需要先深入理解其背后的基本概念和原理。Socks5代理是一种先进的网络协议&#xff0c;它像一位中转站&#xff0c;默默地帮用户转发网络请求。它让网络流量得以通过代理服务器传输&#xff0c;进而隐藏用户的真实IP地址。…

餐饮连锁食品安全标准落实难?悠络客AI巡检,用SOP AI化守护“舌尖上的安全”

食品安全与卫生问题一直是全民关注的焦点&#xff0c;从民生角度&#xff0c;民以食为天&#xff0c;食品安全关系到消费者的身体健康和生命安全&#xff1b;从企业角度&#xff0c;品牌建设不易&#xff0c;一旦出现食品卫生安全问题&#xff0c;不仅会带来直接经济损失&#…

Python灰帽子网络安全实践

教程介绍 旨在降低网络防范黑客的入门门槛&#xff0c;适合所有中小企业和传统企业。罗列常见的攻击手段和防范方法&#xff0c;让网站管理人员都具备基本的保护能力。Python 编程的简单实现&#xff0c;让网络运维变得更简单。各种黑客工具的理论和原理解剖&#xff0c;让人知…