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

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 安装方式

 

相关文章:

Docker入门介绍

【一】从 dotCloud 到 Docker——低调奢华有内涵 1、追根溯源:dotCloud 时间倒回到两年前,有一个名不见经传的小公司,他的名字叫做:dotCloud。 dotCloud 公司主要提供的是基于 PaaS(Platform as a Service,平台及服务) 平台为开发者或开发商…...

第四站:指针的进阶-(二级指针,函数指针)

目录 二级指针 二级指针的用途 多级指针的定义和使用 指针和数组之间的关系 存储指针的数组(指针数组:保存地址值) 指向数组的指针(数组指针) 传参的形式(指针) 数组传参时会退化为指针 void类型的指针 函数指针 定义: 调用:两种方式:(*指针名)(参数地址) 或者 指针…...

浏览器渲染原理(面试重点)

一、浏览器是如何渲染页面的 常见的简洁答案: 浏览器内核拿到内容后,渲染流程大致如下:解析HTML,构建Dom树;解析CSS,构建Render树;(将CSS代码解析成树形的数据结构,与D…...

C //练习 5-3 用指针方式实现第2章中的函数strcat。函数strcat(s, t)将t指向的字符串复制到s指向的字符串的尾部。

C程序设计语言 (第二版) 练习 5-3 练习 5-3 用指针方式实现第2章中的函数strcat。函数strcat(s, t)将t指向的字符串复制到s指向的字符串的尾部。 注意:代码在win32控制台运行,在不同的IDE环境下,有部分可能需要变更。…...

深度剖析Redis:从基础到高级应用

目录 引言 1、 Redis基础 1.1 Redis数据结构 1.1.1 字符串(String) 1.1.2 列表(List) 1.1.3 集合(Set) 1.1.4 散列(Hash) 1.1.5 有序集合(Sorted Set)…...

视频监控录像服务器(中心录像服务器)功能详细介绍

目 录 一、概述 (一)定义 (二)视频监控中心录像服务器 二、存储策略服务 (一)存储策略配置 1、 录入页面 2、 选择需要进行录像的视频 3、批量选择多个通道号 4、其他关键参数…...

SouthernBiotech抗荧光淬灭封片剂

荧光淬灭又称荧光熄灭或萃灭,是指导致特定物质的荧光强度和寿命减少的所有现象。引起荧光淬灭的物质称为荧光淬灭剂。SouthernBiotech专门开发的Fluoromount-G系列荧光封片剂是以甘油为基础,加入抗荧光淬灭剂,可明显降低荧光淬灭现象&#xf…...

[Excel]如何找到非固定空白格數列的條件數據? 以月份報價表單為例

在群組中看到上述問題,研判應是一份隨月份變動的產品報價表單,空白欄可能表示該月份價格與上個月份一致。這個問題是需要取得最近一次單價和倒數第二次單價,常用且實務的excel案例值得紀錄。 最近一次單價: INDEX($B2:$G2,1,LARGE(IF(ISBLAN…...

TypeScript进阶(二)深入理解装饰器

✨ 专栏介绍 TypeScript是一种由微软开发的开源编程语言,它是JavaScript的超集,意味着任何有效的JavaScript代码都是有效的TypeScript代码。TypeScript通过添加静态类型和其他特性来增强JavaScript,使其更适合大型项目和团队开发。 在TypeS…...

书生·浦语第三次作业

我最近在参加书生浦语大模型实战营,这是第三次作业打卡! 如果你也想两周玩转大模型微调,部署与测评全链路。报名链接:invite 书生浦语大模型实战营报名 邀请码可以填026014 一、基础作业:复现课程知识库助手搭建过程…...

GPT实战系列-LangChain + ChatGLM3构建天气查询助手

GPT实战系列-LangChain ChatGLM3构建天气查询助手 用ChatGLM的工具可以实现很多查询接口和执行命令,而LangChain是很热的大模型应用框架。如何联合它们实现大模型查询助手功能?例如调用工具实现网络天气查询助手功能。 LLM大模型相关文章: …...

LeetCode 2696.删除子串后的字符串最小长度:栈

【LetMeFly】2696.删除子串后的字符串最小长度:栈 力扣题目链接:https://leetcode.cn/problems/minimum-string-length-after-removing-substrings/ 给你一个仅由 大写 英文字符组成的字符串 s 。 你可以对此字符串执行一些操作,在每一步操…...

Xcode15 升级问题记录

这里写自定义目录标题 新版本Xcode15升级问题1:rsync error: some files could not be transferred (code 23) at ...参考 新版本Xcode15升级 下载地址:https://developer.apple.com/download/all/ 我目前使用的版本是Xcode15.2 我新创建了一个项目&…...

List、Set、Map有什么区别?

List、Set和Map是Java中的三种基本数据结构,它们在元素重复性、有序性和用途方面存在显著的区别。 元素重复性: List允许有重复的元素。任何数量的重复元素都可以在不影响现有重复元素的值及其索引的情况下插入到List集合中。 Set集合不允许元素重复。…...

centOS系统yum安装和卸载mongodb

0.1 什么是mongodb? 0.2 Mongodb是一个基于分布式文件存储的数据库。由C语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 0.3 Mongodb是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据…...

2023年12月 C/C++(一级)真题解析#中国电子学会#全国青少年软件编程等级考试

C/C++编程(1~8级)全部真题・点这里 第1题:数的输入和输出 输入一个整数和双精度浮点数,先将浮点数保留2位小数输出,然后输出整数。 时间限制:1000 内存限制:65536 输入 一行两个数,分别为整数N(不超过整型范围),双精度浮点数F,以一个空格分开。 输出 一行两个数,分…...

Python爬虫---Scrapy项目的创建及运行

Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖 掘,信息处理或存储历史数据等一系列的程序中。 1. 安装scrapy: pip install scrapy 注意:需要安装在python解释器相同的位置,例如&#xf…...

PyTorch: torch.nn 子模块及其在循环神经网络中的应用

目录 torch.nn子模块详解 nn.utils.rnn.PackedSequence 参数说明 注意事项 示例代码 nn.utils.rnn.pack_padded_sequence 参数说明 返回值 注意事项 示例代码 nn.utils.rnn.pad_packed_sequence 参数说明 返回值 注意事项 示例代码 nn.utils.rnn.pad_sequence …...

【QT】自定义代理类

目录 1 我们为什么要使用自定义代理类? 2 自定义代理类的基本设计要求 3 自定义代理的功能 4 基于QSpinBox的自定义代理类 5 自定义代理类的使用 1 我们为什么要使用自定义代理类? 传统的模型-视图框架可以让我们实现逻辑展示相分离,我们…...

线程休眠、线程让步、线程优先级相关内容学习笔记

1、线程休眠 (1)sleep() 如果需要让当前正在执行的线程暂停一段时间,并进入阻塞状态(Timed_Waiting),则可以通过调用Thread类的静态sleep()方法来实现。 static void sleep(long millis):让当前正在执行的线…...

paddle指定运行gpu

在PaddlePaddle中指定使用GPU进行运行非常简单。首先,确保你的机器上已经安装了CUDA和cuDNN,并且正确配置了GPU环境。然后,按照以下步骤进行操作: 导入PaddlePaddle库: import paddle设置使用的设备为GPU&#xff1a…...

Java异常及网络编程

异常续 throws关键字 当一个方法中使用throw抛出一个非RuntimeException的异常时,就要在该方法上使用throws声明这个异常的抛出。此时调用该方法的代码就必须处理这个异常,否则编译不通过。 package exception; ​ /*** 测试异常的抛出*/ public clas…...

通过 Elastic Stack 充分利用电信领域生成式 AI 的力量

作者:Elastic Piotr Kobziakowski, Jrgen Obermann 在瞬息万变的电信领域,Elastic Stack 与生成式 AI 的集成正在开创运营效率和创新的新时代。 这些技术不仅增强了网络运营,而且还彻底改变了各个部门的内部流程。 下面,我们将深入…...

Redis:原理速成+项目实战——Redis实战8(基于Redis的分布式锁及优化)

👨‍🎓作者简介:一位大四、研0学生,正在努力准备大四暑假的实习 🌌上期文章:Redis:原理速成项目实战——Redis实战7(优惠券秒杀细节解决超卖、一人一单问题) &#x1f4d…...

江山易改本性难移之ZYNQ SDK QSPI固化bug及其解决方法

之前在Vivado2018.3通过QSPI方式固化程序时出现问题,显示flash擦除成功,但最后总是不能写入到flash中。 查资料发现从VIVADO 2017.3版本开始,Xilinx官方为了使Zynq-7000和Zynq UltraScale 实现流程相同,在QSPI FLASH使用上做了变化…...

系列三十六、注解版Spring、SpringMVC配置文件

一、注解版Spring、SpringMVC配置文件 1.1、pom <dependencies><!-- SpringMVC --><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.1.5.RELEASE</version><…...

爬虫你需要知道的:什么是http请求

1. 什么是http请求 我们将通过发送http请求来获取网页内容。http是HyperText Transfer Protocol的缩写&#xff0c;意思是超文本传输协议&#xff0c;它是一种客户端和服务器之间的请求响应协议。 浏览器就可以看作是一个客户端&#xff0c;当我们在浏览器地址栏输入想访问的…...

MCU FT61F14x入门

目录 前言一、CMIDE的使用二、系统时钟与睡眠2.1 上电复位 (POR)与系统复位2.2 振荡器和系统时钟2.3 SLEEP睡眠模式 (POWER-DOWN)2.4 低电压检测/比较器 (LVD) 三、I/O端口与中断四、串口USART五、定时器六、ADC七、EEPROM 前言 FT61F14x是辉芒微电子的微控制器&#xff0c;是一…...

星火大模型——多模态API调用(图像+文本)

参考文档 图片理解 API 文档 环境配置 pip3 install websocket-client核心代码 import _thread as thread import base64 import datetime import hashlib import hmac import json from urllib.parse import urlparse import ssl from datetime import datetime from time…...

计算机基础面试题 |22.精选计算机基础面试题

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…...