容器技术

Spring Boot 嵌入式Web容器

梦想的初衷 提交于 2019-12-28 17:53:54
文章目录 前言 1、起源 2、容器启动流程解析 2.1、获取应用类型 2.2、容器启动流程 3、加载 Web 容器工厂 4、总结 前言 最近在学习Spring Boot相关的课程,过程中以笔记的形式记录下来,方便以后回忆,同时也在这里和大家探讨探讨,文章中有漏的或者有补充的、错误的都希望大家能够及时提出来,本人在此先谢谢了! 开始之前呢,希望大家带着几个问题去学习: 1、Spring Boot 嵌入式Web容器是什么? 2、整体流程或结构是怎样的? 3、核心部分是什么? 4、怎么实现的? 这是对自我的提问,我认为带着问题去学习,是一种更好的学习方式,有利于加深理解。好了,接下来进入主题。 1、起源 在当今的互联网场景中,与终端用户交互的应用大多数是 Web 应用,其中 Java Web 应用尤为突出,其对应的 Java Web 容器发展至今也分为 Servlet Web 容器和 Reactive Web 容器,前者的使用率大概占比是百分之九十左右,其具体的实现有 Tomcat 、 Jetty 和 Undertow ;而后者出现较晚,且技术栈体系并未完全成熟,还有待时间验证可行性,它的默认实现为 Netty Web Server 。其中的 Servlet 规范与三种 Servlet 容器的版本关系如下: Servlet 规范 Tomcat Jetty Undertow 4.0 9.X

Spring Boot 嵌入式Web容器

ぐ巨炮叔叔 提交于 2019-12-28 17:10:47
目录 前言 1、起源 2、容器启动流程解析 2.1、获取应用类型 2.2、容器启动流程 3、加载 Web 容器工厂 4、总结 前言 最近在学习Spring Boot相关的课程,过程中以笔记的形式记录下来,方便以后回忆,同时也在这里和大家探讨探讨,文章中有漏的或者有补充的、错误的都希望大家能够及时提出来,本人在此先谢谢了! 开始之前呢,希望大家带着几个问题去学习: 1、Spring Boot 嵌入式Web容器是什么? 2、整体流程或结构是怎样的? 3、核心部分是什么? 4、怎么实现的? 这是对自我的提问,我认为带着问题去学习,是一种更好的学习方式,有利于加深理解。好了,接下来进入主题。 1、起源 在当今的互联网场景中,与终端用户交互的应用大多数是 Web 应用,其中 Java Web 应用尤为突出,其对应的 Java Web 容器发展至今也分为 Servlet Web 容器和 Reactive Web 容器,前者的使用率大概占比是百分之九十左右,其具体的实现有 Tomcat 、 Jetty 和 Undertow ;而后者出现较晚,且技术栈体系并未完全成熟,还有待时间验证可行性,它的默认实现为 Netty Web Server 。其中的 Servlet 规范与三种 Servlet 容器的版本关系如下: Servlet 规范 Tomcat Jetty Undertow 4.0 9.X 9

Docker Toolbox安装

淺唱寂寞╮ 提交于 2019-12-28 17:08:02
公司最近搭建docker环境,其中会遇到一些问题,在这里记录一下。 先来了解一下docker 一、基本概念 1.Docker中基本概念 镜像(Image) 提到镜像,有对操作系统有一定认知的都知道,镜像是一个压缩的ISO文件,里面包含操作系统运行所需要的运行环境以及库文件,配置文件等等。从认识上简单的来说,镜像就是面向对象中的类,相当于一个模板。从本质上来说,镜像相当于一个文件系统。而docker镜像相当于是一个root文件系统,除了提供容器运行所需要的程序,库,资源,配置等文件还包括运行时准备的一些配置参数(匿名卷,环境变量,用户等)。镜像不包含任何动态数据,在构建完成之后本层镜像就不会被改变。 docker镜像在设计之时,就充分使用Union FS 技术,并被设计为分层存储的架构。所以与传统意义上的镜像有着很大不同,它并非体现为一个打包的文件,而是由一组文件系统组成,或者说由多层文件系统联合组成。 镜像构建时,由下网上一层一层构建,每一层构建完成后就不会发生改变,后一层上对上一层的改变都发生在本本层。删除上一层文件也只是标记删除,并不会影响上一层。所以,构建镜像时,每一层尽量包含本层需要的东西,其他额外的东西应该在构建结束前清理掉。 容器(Container) 容器的实质是进程,是镜像的实例化, 但与直接在宿主执行的进程不同,容器进程运行与属于自己独立的命名空间

Java面试——Spring Boot

时光毁灭记忆、已成空白 提交于 2019-12-28 12:35:55
一、谈谈你对 SpringBoot 的理解 简单说说我的理解:Java是一个静态语言,相比动态语言,它相对笨重,体现在我们搭建 SSM 框架写一个 helloword 的时候相当复杂,需要写一大堆的配置。还有在导入 jar包依赖的时候版本号问题,令人头疼。但是,我们有 Spring呀,真的是 Java 开发人员的福音。SpringBoot 就是为解决这些问题而生的。让我们写一个 helloword 跟动态语言一样简单。版本控制也通过 springboot与maven的插件进行整合管理,让我们将经历重点放在业务的开发之上。下面我们就说说其优点: 【1】创建独立的 Spring 应用,可以通过 java -jar xx.jar 直接运行; 【2】直接嵌入 Tomcat、Jetty或Undertow 等 Web 容器(不需要部署 war 文件),后期与云计算平台集成方便(docket); 【3】提供固化的 “starter” 的 pom 配置简化构建 maven 配置,避免大量的Maven导入和各种版本冲突; 【4】当条件满足时自动装配 Spring 或第三方类库; 【5】提供运维特性,基于 ssh、http、telnet 对服务器进行监控、健康检查以及外部化配置; 【6】SpringBoot 不需要 XML 配置,也不是通过代码生成来实现,而是通过条件注解+类实现配置文件; 【7

基于Kubernetes构建企业容器云

为君一笑 提交于 2019-12-27 21:43:42
前言 团队成员有DBA、运维、Python开发,由于需要跨部门向公司私有云团队申请虚拟机, 此时我在思考能否在现有已申请的虚拟机之上,再进行更加细粒度的资源隔离和划分,让本团队的成员使用, 也就是在私有云上构建docker容器云,于是研究下Kubernetes,看一下能否找到一些突破点?Kubernetes ( 库伯耐踢死 ),省略了K ubernete s中间8个字母,简称K8S; 什么是Kubernets? kubernets是一种容器编排的解决方案;(The solution to do container orchestrate) 什么是容器技术? (what's the container technology?) 很久以前app上线流程是: 选择1台物理机(First you should choice a phycisal server)然后在这个物理机上部署您的app(second intalling your application in the phycisal server); 缺点: 部署慢 效率低 很难迁移 虚拟化技术出现之后(virtualization) 优势 The advantage of Virtualization Resourse pool like CPU Memory(CPU、内存资源可以动态分配) Easy to extension:

docker的安装/容器及镜像操作

谁说胖子不能爱 提交于 2019-12-27 13:56:30
docker的安装 Centos7.6 #step 1: 安装必要的一些系统工具 yum install -y yum-utils device-mapper-persistent-data lvm2 #Step 2: 添加软件源信息 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum makecache fast yum -y install docker-ce #Step 4: 开启Docker服务 systemctl restart docker 1. 配置docker的yum源,可以使用阿里云的 2. 安装docker-ce yum -y install docker-ce 3.关闭防火墙 systemctl stop firewalld setenforce 4.启动Docker systemctl start docker systemctl enable docker 镜像的操作 docker pull 拉取镜像 docker images 查看本地的镜像 docker rmi 删除镜像 容器的操作 docker run 下载、创建、运行一个容器 docker ps 查看正在运行的容器 docker start 启动容器

Thinking in Java:容器深入研究

て烟熏妆下的殇ゞ 提交于 2019-12-27 04:56:07
1.虚线框表示Abstract类,图中大量的类的名字都是以Abstract开头的,它们仅仅是部分实现了特定接口的工具,因此创建时能够选择从Abstract继承。 Collections中的实用方法:挑几个经常使用的: 1. reverse(List):逆转次序 2. rotate(List,int distance)全部元素向后移动distance个位置,将末尾元素循环到前面来(用了三次reverse) 3.sort(List,Comparator) 排序,可依照自己的Comparator 4.copy(List dest,List src) 复制元素(引用) 5.fill(List,T x)同Arrays一样。复制的是同一引用 6.disjoint(Collection。Collection) 两个集合没有不论什么元素时返回ture 7.frequency(Collection, Object x)返回Collection中等于x的元素个数 8.binarySearch()折半查找(要求有序) Collection的功能方法: boolean add(T) 可选方法 。若没将參数加入进容器,则false boolean addAll(Collection ) 可选方法 ,仅仅要加入了随意元素就true void clear() 可选方法 boolean contains(T)

Docker系列001-Docker概述

穿精又带淫゛_ 提交于 2019-12-27 01:44:19
本人微信公众号,欢迎扫码关注! 引言 Docker是一个开源的容器引擎,在搞清楚它是什么之前,必须先了解什么是 容器 。 什么是容器 先看一下官方介绍: 容器就是将软件打包成标准化单元,以用于开发、交付和部署。 容器镜像是轻量的、可执行的独立软件包 ,包含软件运行所需的所有内容:代码、运行时环境、系统工具、系统库和设置。 容器化软件适用于基于Linux和Windows的应用,在任何环境中都能够始终如一地运行。 容器赋予了软件独立性,使其免受外在环境差异(例如,开发和预演环境的差异)的影响,从而有助于减少团队间在相同基础设施上运行不同软件时的冲突。 什么是Docker Docker是世界领先的软件容器平台。 Docker使用Google公司推出的Go语言进行开发实现,基于Linux内核的cgroup,namespace,以及AUFS类的UnionFS等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。 由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。Docke最初实现是基于LXC。 Docker能够自动执行重复性任务,例如搭建和配置开发环境,从而解放了开发人员以便他们专注在真正重要的事情上:构建杰出的软件。 用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。 Docker思想 集装箱 标准化:

docker 使用

巧了我就是萌 提交于 2019-12-27 00:00:45
docker出现极大的提高了生产力,借助docker可快速搭建测试环境,下面看看docker的用法吧,命令还挺多的 一. 安装 yum install -y docker-ce service start docker docker 底层利用了Linux容器技术(LXC),内核要求 2.6.32 以上版本,此处安装社区版本。 二. 基础命令 显示本机镜像 docker version #本机安装镜像 docker images #删除镜像 docker rmi redis 三. 安装mysql 手动安装mysql,需要各种配置,很容易出错。利用docker几条命令就可以搞定mysql安装。 3.1 查找mysql镜像 docker search mysql 3.2 安装 docker pull mysql 默认下载最新版本,相当于docker pull mysql:latest,可指定版本号,从 docker中央仓库 查找版本。 docker pull mysql:5.7.28 3.3 启动mysql docker run -itd --name mysql5.7 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root 1e4405fe1ea9 -i 交互环境,-t 伪终端,-d 后台启动。如果不指定-d,会直接进入容器环境。 -name 容器名称 -p

docker三大概念

纵饮孤独 提交于 2019-12-26 17:07:01
docker三大概念 容器三大基本概念 镜像 image 容器 container 仓库 repository docker整个生命周期就是这三个概念。 docker镜像 Docker镜像就是一个只读的模板。 例如:一个镜像可以包含一个完整的CentOS操作系统环境,里面仅安装了Apache或用户需要的其他应用程序。 镜像可以用来创建Docker容器。 Docker提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载一个已经做好的镜像来直接使用。 image的分层存储 因为镜像包含完整的root文件系统,体积是非常庞大的,因此docker在设计时按照Union FS的技术,将其设计为分层存储的架构。 镜像不是ISO那种完整的打包文件,镜像只是一个虚拟的概念,他不是一个完整的文件,而是由一组文件组成,或者多组文件系统联合组成。 docker容器(container) image和container的关系,就像面向对象程序设计中的 类和实例一样,镜像是静态的定义( class ),容器是镜像运行时的实体(object)。 容器可以被创建、启动、停止、删除、暂停 Docker利用容器来运行应用。 容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的,保证安全的平台。 可以把容器看做是一个简易版的Linux环境