容器技术

docker学习之介绍

邮差的信 提交于 2019-11-28 13:23:14
docker是什么? ​ docker是linux容器的一种封装,提供简单易用的容器使用接口,是最流行的linux容器解决方案。docker的接口相当简单,用户可以方便地创建和销毁容器。docker将应用程序与程序的依赖,打包在一个文件里面,运行这个文件就会生成一个虚拟容器。程序运行在虚拟容器里面,如同在真实物理机上运行一样,可以解决环境配置的难题。 ​ linux容器不是模拟一个完整的操作系统,而是对进程进行隔离,在正常的进程外面套一个保护层,对于容器里面的进程来说,它接触到的资源都是虚拟的,从而实现和底层系统的隔离。 启动快 容器里面的应用,直接就是底层系统的一个进程,而不是虚拟机内部的进程。所以,启动容器相当于启动本机的一个进程,而不是启动一个操作系统,速度快很多。 资源占用少 容器只占用需要的资源,不占用那些没有用的资源;而虚拟机是完整的操作系统,不可避免要占用所有资源。此外,多个容器可以共享资源,虚拟机都是独享资源。 体积小 容器只要包含用到的组件即可,而虚拟机是整个操作系统的打包,所以容器文件比虚拟机文件小很多。 综上所说,容器可以理解为轻量级的虚拟机,能够提供虚拟化的环境,成本开销小得多。 docker的优势 更高效的利用系统资源 容器 不需要进行硬件虚拟以及运行完整的操作系统等额外开销,所以无论是应用执行速度、内存损耗或者文件存储速度,都比传统虚拟技术更高效。

docker学习之介绍

可紊 提交于 2019-11-28 13:22:00
### docker是什么? ​ docker是linux容器的一种封装,提供简单易用的容器使用接口,是最流行的linux容器解决方案。docker的接口相当简单,用户可以方便地创建和销毁容器。docker将应用程序与程序的依赖,打包在一个文件里面,运行这个文件就会生成一个虚拟容器。程序运行在虚拟容器里面,如同在真实物理机上运行一样,可以解决环境配置的难题。 ​ linux容器不是模拟一个完整的操作系统,而是对进程进行隔离,在正常的进程外面套一个保护层,对于容器里面的进程来说,它接触到的资源都是虚拟的,从而实现和底层系统的隔离。 1. 启动快 容器里面的应用,直接就是底层系统的一个进程,而不是虚拟机内部的进程。所以,启动容器相当于启动本机的一个进程,而不是启动一个操作系统,速度快很多。 2. 资源占用少 容器只占用需要的资源,不占用那些没有用的资源;而虚拟机是完整的操作系统,不可避免要占用所有资源。此外,多个容器可以共享资源,虚拟机都是独享资源。 3. 体积小 容器只要包含用到的组件即可,而虚拟机是整个操作系统的打包,所以容器文件比虚拟机文件小很多。 综上所说,容器可以理解为轻量级的虚拟机,能够提供虚拟化的环境,成本开销小得多。 ### docker的优势 - 更高效的利用系统资源 容器 不需要进行硬件虚拟以及运行完整的操作系统等额外开销,所以无论是应用执行速度

Spring源码剖析开篇:什么是Spring?

亡梦爱人 提交于 2019-11-28 12:45:53
在讲源码之前,先让我们回顾一下一下Spring的基本概念,当然,在看源码之前你需要使用过spring或者spirngmvc。 Spring是什么 Spring是一个开源的轻量级Java SE(Java 标准版本)/Java EE(Java 企业版本)开发应用框架,其目的是用于简化企业级应用程序开发。应用程序是由一组相互协作的对象组成。而在传统应用程序开发中,一个完整的应用是由一组相互协作的对象组成。所以开发一个应用除了要开发业务逻辑之外,最多的是关注如何使这些对象协作来完成所需功能,而且要低耦合、高内聚。业务逻辑开发是不可避免的,那如果有个框架出来帮我们来创建对象及管理这些对象之间的依赖关系。可能有人说了,比如“抽象工厂、工厂方法 设计模式 ”不也可以帮我们创建对象,“生成器模式”帮我们处理对象间的依赖关系,不也能完成这些功能吗?可是这些又需要我们创建另一些工厂类、生成器类,我们又要而外管理这些类,增加了我们的负担,如果能有种通过配置方式来创建对象,管理对象之间依赖关系,我们不需要通过工厂和生成器来创建及管理对象之间的依赖关系,这样我们是不是减少了许多工作,加速了开发,能节省出很多时间来干其他事。Spring框架刚出来时主要就是来完成这个功能。 Spring框架除了帮我们管理对象及其依赖关系,还提供像通用日志记录、性能统计、安全控制、异常处理等面向切面的能力

IOC与DI的理解

折月煮酒 提交于 2019-11-28 12:21:59
原文地址: https://blog.csdn.net/ji1127780204/article/details/80291266 1.1、IoC是什么   Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。如何理解好Ioc呢?理解好Ioc的关键是要明确“谁控制谁,控制什么,为何是反转(有反转就应该有正转了),哪些方面反转了”,那我们来深入分析一下:   ●谁控制谁,控制什么:传统Java SE程序设计,我们直接在对象内部通过new进行创建对象,是程序主动去创建依赖对象;而IoC是有专门一个容器来创建这些对象,即由Ioc容器来控制对 象的创建;谁控制谁?当然是IoC 容器控制了对象;控制什么?那就是主要控制了外部资源获取(不只是对象包括比如文件等)。   ●为何是反转,哪些方面反转了:有反转就有正转,传统应用程序是由我们自己在对象中主动控制去直接获取依赖对象,也就是正转;而反转则是由容器来帮忙创建及注入依赖对象;为何是反转?因为由容器帮我们查找及注入依赖对象,对象只是被动的接受依赖对象,所以是反转;哪些方面反转了?依赖对象的获取被反转了。   用图例说明一下,传统程序设计如图2-1,都是主动去创建相关对象然后再组合起来: 图1-1

【第1章 Spring概述与结构】1.1 Spring起源与概述

▼魔方 西西 提交于 2019-11-28 10:47:35
##Spring起源## Rod Johson在2002年编著的《Expert one to one J2EE design and development》一书中,对Java EE正统框架臃肿、低效、脱离现实的种种现状提出了质疑,并积极寻求探索革新之道。以此书为指导思想,他编写了interface21框架,这是一个力图冲破Java EE传统开发的困境,从实际需求出发,着眼于轻便、灵巧,易于开发、测试和部署的轻量级开发框架。 Spring框架即以interface21框架为基础,经过重新设计,并不断丰富其内涵,于2004年3月24日,发布了1.0正式版。 同年他又推出了一部堪称经典的力作《Expert one-to-one J2EE Development without EJB》,该书在Java世界掀起了轩然大波,不断改变着Java开发者程序设计和开发的思考方式。在该书中,作者根据自己多年丰富的实践经验,对EJB的各种笨重臃肿的结构进行了逐一的分析和否定,并分别以简洁实用的方式替换之。至此一战功成,Rod Johnson成为一个改变Java世界的大师级人物。 ##Spring目标## 传统J2EE应用的开发效率低,应用服务器厂商对各种技术的支持并没有真正统一,导致J2EE的应用没有真正实现Write Once及Run Anywhere的承诺。Spring作为开源的中间件

【Docker入门篇】

不想你离开。 提交于 2019-11-28 09:57:43
目录 Linux容器 Docker的优势 Docker三大概念 安装使用Docker 补充知识 原文: http://blog.gqylpy.com/gqy/327 @ *** 所谓Docker Docker最初是dotCloud公司创始人Solomon Hykes在法国期间发起的一个公司内部项目,于2013年3月以Apache2.0授权协议开源,主要项目代码在GitHub上进行维护. Docker使用Google公司推出的GO语言进行开发实现. Docker是Linux容器的一种封装,提供简单易用的容器使用接口,它是最流行的Linux容器解决方案. Docker的接口相当简单,用户可以方便的创建、消费容器. Docker将应用程序与程序的依赖打包在一个文件内,运行这个文件就会生成一个虚拟容器. 程序运行在虚拟容器里,如同在真实物理机上运行一样,有了Docker,就不用担心环境问题了. Docker应用场景 web应用的自动化打包和发布. 自动化测试和持续集成、发布. 在服务型环境中部署和调整数据库或其它应用. *** Linux容器 由于虚拟机的诸多问题,Linux发展出了另一种虚拟化技术:Linux容器(Linux Containers,缩写LXC). . Linux容器不是模拟一个完整的操作系统,而是对进程进行隔离,在正常的进程外面套了一个保护层,对于容器里面的进程来说

Kubernetes 知识点

不问归期 提交于 2019-11-28 08:33:47
什么是Kubernetes? Kubernetes(k8s)是自动化容器操作的开源平台,这些操作包括部署,调度和节点集群间扩展。如果你曾经用过Docker容器技术部署容器,那么可以将Docker看成Kubernetes内部使用的低级别组件。Kubernetes不仅仅支持Docker,还支持Rocket,这是另一种容器技术。 使用Kubernetes可以: 自动化容器的部署和复制 随时扩展或收缩容器规模 将容器组织成组,并且提供容器间的负载均衡 很容易地升级应用程序容器的新版本 提供容器弹性,如果容器失效就替换它,等等... 介绍文章: http://www.dockone.io/article/932 来源: http://www.cnblogs.com/cag2050/p/8283409.html

k8s pod和容器概念的区分

社会主义新天地 提交于 2019-11-28 08:13:57
https://blog.51cto.com/11093860/2337707 一:在探讨pod和容器的区别之前,我们先谈谈为什么k8s会使用pod这个最小单元,而不是使用docker的容器,k8s既然使用了pod,当然有它的理由。 1:更利于扩展 k8s不仅仅支持Docker容器,也支持rkt甚至用户自定义容器,为什么会有这么多不同的容器呢,因为容器并不是真正的虚拟机,参考我之前的博客,docker的一些概念和误区总结,此外,Kubernetes不依赖于底层某一种具体的规则去实现容器技术,而是通过CRI这个抽象层操作容器,这样就会需要pod这样一个东西,pod内部再管理多个业务上紧密相关的用户业务容器,就会更有利用业务扩展pod而不是扩展容器。 2:更容易定义一组容器的状态 如果我们没有使用pod,而是直接使用一组容器去跑一个业务呢,那么当其中一个或者若干个容器出现问题呢,我们如何去定义这一组容器的状态呢,通过pod这个概念,这个问题就可以很好的解决,一组业务容器跑在一个k8s的pod中,这个pod中会有一个pause容器,这个容器与其他的业务容器都没有关系,以这个pause容器的状态来代表这个pod的状态, 3:利于容器间文件共享,以及通信。 pause容器有一个ip地址,和一个存储卷,pod中的其他容器共享pause容器的ip地址和存储,这样就做到了文件共享和互信。 二

视频文件的容器格式和编码格式

荒凉一梦 提交于 2019-11-28 08:02:31
一、概述 我们常见的视频文件,大多为 mkv、mov、mp4 等扩展名。一般情况下,我们粗略地根据扩展名判断文件类型。但实际上,科学的分类方法如下: 编码:指的是媒体文件中音视频的编码,如:H.264、AAC 容器:可根据文件扩展名区分,用于将多部分内容整合,包括: 视频 音频,可以是多音轨,如:一部影片同时具备多种语言 字幕:一部影片也可以包含多种语言的内置字幕 二、常见的文件(容器)格式 AVI (.avi)   其含义是 Audio Video Interactive,就是把视频和音频编码混合在一起储存,是最常见的音频视频容器。支持的视频音频编码也是最多的。AVI 也是最长寿的格式,已存在 10 余年了,虽然发布过改版(V2.0 于 1996 年发布),但已显老态。 MPG (.mpg/.mpeg/.dat)   MPEG 编码采用的音频视频容器,具有流的特性,里面又分为 PS、TS 等,PS 主要用于 DVD 存储,TS 主要用于 HDTV。 VOB (.vob)   DVD 采用的音频视频容器格式(即视频 MPEG-2,音频用 AC3 或者 DTS),支持多视频多音轨多字幕章节等。 MP4   MPEG-4 编码采用的音频视频容器,基于 QuickTime MOV 开发,具有许多先进特性。 3GP   3GPP 视频采用的格式,主要用于流媒体传送。 ASF (.wmv/

C++软件开发面试题总结

落爺英雄遲暮 提交于 2019-11-28 07:34:53
  面试题有难有易,不能因为容易,我们就轻视,更不能因为难,我们就放弃。我们面对高薪就业的态度永远不变,那就是坚持、坚持、再坚持。出现问题,找原因;遇到困难,想办法。我们一直坚信只有在坚持中才能看到希望,而不是看到希望才去坚持。   人生没有如果,只有结果和后果。既然选择了,就不后悔。年轻就是资本,年轻就要吃苦,就要历练。就要学会在坚持中成长。如此感慨,至深的心得体会,绝对的经验之谈。 1、 Static有什么用途? (1)函数体内static变量的作用范围是该函数体,该变量的内存只被分配一次,因此它的值在下次调用时不变; (2)模块内的static全局变量同样只能在该模块内的函数访问和调用,不能被模块外的其他函数访问; (3)在类中的static成员变量属于整个类所有,对类的所有对象只有一份拷贝,这个函数不接受this指针,因为只能范围类的static成员函数。 2、 const (1)不管在函数声明修饰形参、还是修饰类的成员变量,表示该成员变量不能被改变,而且通常需要进行初始化,因为之后不能再改变; (2)对于指针来说,可以修饰指针所指向的变量(在*左边,即指针指向内容为常量),也可以指定指针本身为const(在*右边,指针本身是常量),或者两者同时指定为const(都是常量)。 3、 this指针 (1)this指针本质是一个函数参数,只是编译期隐藏起形式的,语法层面上的参数