容器技术

spring容器、spring MVC容器以及web容器的区别

冷暖自知 提交于 2019-11-26 21:53:38
本文转载自 https://www.cnblogs.com/xiexin2015/p/9023239.html 说到spring和springmvc,其实有很多工作好多年的人也分不清他们有什么区别,如果你问他项目里用的什么MVC技术,他会说我们用的spring和mybatis,或者spring和hibernate。 在潜意识里会认为springmvc就是spring,之前我也是这么认为的,哈哈。   虽然springMVC和spring有必然的联系,但是他们的区别也是有的。下面我就简单描述下   首先 springmvc和spring它俩都是容器,容器就是管理对象的地方,例如Tomcat,就是管理servlet对象的,而springMVC容器和spring容器,就是管理bean对象的地方,再说的直白点,springmvc就是管理controller对象的容器,spring就是管理service和dao的容器,这下你明白了吧。 所以我们在springmvc的配置文件里配置的扫描路径就是controller的路径,而spring的配置文件里自然配的就是service和dao的路径   spring-mvc.xml <context:component-scan base-package="com.smart.controller" />   applicationContext

存储卷

烂漫一生 提交于 2019-11-26 21:05:08
前言 默认情况下容器的数据都是非持久化的, 在容器消亡以后数据也跟着丢失, 所以 Docker 提供了 Volume 机制以便将数据持久化存储。 类似的, Kubernetes 提供了更强大的 Volume 机制和丰富的插件, 解决了容器数据持久化和容器间共享数据的问题。 与 Docker 不同, Kubernetes Volume 的生命周期与 Pod 绑定容器挂掉后 Kubelet 再次重启容器时, Volume 的数据依然还在而 Pod 删除时, Volume 才会清理。 数据是否丢失取决于具体的 Volume 类型, 比如 emptyDir 的数据会丢失, 而 PV 的数据则不会丢 PersistentVolume(pv)和PersistentVolumeClaim(pvc)是k8s提供的两种API资源,用于抽象存储细节。管理员关注于如何通过pv提供存储功能而无需关注用户如何使用,同样的用户只需要挂载pvc到容器中而不需要关注存储卷采用何种技术实现。 pvc和pv的关系与pod和node关系类似,前者消耗后者的资源。pvc可以向pv申请指定大小的存储资源并设置访问模式。 pv pvc相关知识 生命周期 pv和pvc遵循以下生命周期: 1.供应准备。管理员在集群中创建多个pv供用户使用。   2.绑定。用户创建pvc并指定需要的资源和访问模式。在找到可用pv之前

docker容器的学习笔记

纵饮孤独 提交于 2019-11-26 20:02:31
目录 Docker入门学习笔记(一) 1. 什么是Docker? 2. Docke的目标 3. Docker通常应用场景 4. Docker的基本组成 补:Docker容器相关技术简介 安装Docker 5. Docker基本操作 运行容器 启动交互式容器: 查看容器: 自定义容器名: 重新启动已经停止的容器: 删除停止的容器:(不能用于删除运行中的容器) 6. 守护式容器 以守护形式运行容器 附加到运行中的容器(重新进入正在运行的容器) 启动守护式容器(最重要的方式) 查看容器日志(可以看到容器运行的情况) 查看运行中容器的进程情况 在运行中的容器内启动新进程 停止守护容器 使用docker帮助文档 7. 在容器中部署静态网站 设置容器的端口映射 Nginx部署静态网页流程 Docker入门学习笔记(二) 8. 镜像的相关操作 Docker镜像: 列出镜像: 查看镜像 删除镜像 查找镜像 拉取镜像 推送镜像 构建镜像 9. Docker守护进程的配置和操作 查看守护进程 使用service命令管理 Docker的启动选项(守护进程即服务器的启动选项,详细的选项) docker启动配置文件:/etc/default/docker Docker入门学习笔记(三) 10. Docker的远程访问 环境准备: 修改服务器端配置以使服务器支持远程访问 远程访问 docker客户端远程访问

Day03_02_Docker教程之Docker与虚拟机对比

我怕爱的太早我们不能终老 提交于 2019-11-26 19:53:10
Docker与虚拟机对比 一. 虚拟机与容器概述 传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟,因此容器要比传统虚拟机更为轻便. 简单来说:容器和虚拟机具有相似的资源隔离和分配优势,但功能有所不同,因为容器虚拟化的是操作系统,而不是硬件,因此容器更容易移植,效率也更高. 二. 两者对比图  1. 两者本质区别  VM(VMware)在宿主机器、宿主机器操作系统的基础上创建虚拟层、虚拟化的操作系统、虚拟化的仓库,然后再安装应用; Container(Docker容器),在宿主机器、宿主机器操作系统上创建Docker引擎,在引擎的基础上再安装应用。 2. 虚拟机架构  3. Docker架构  三. 虚拟机与Docker总结:   容器是一个应用层抽象,用于将代码和依赖资源打包在一起.多个容器可以在同一台机器上运行,共享操作系统内核,但各自作为独立的进程在用户空间中运行.与虚拟机相比, 容器占用的空间较少(容器镜像大小通常只有几十兆),瞬间就能完成启动. 虚拟机 (VM) 是一个物理硬件层抽象,用于将一台服务器变成多台服务器.管理程序允许多个 VM 在一台机器上运行.每个VM都包含一整套操作系统、一个或多个应用、必要的二进制文件和库资源,因此

虚拟化容器技术:Docker

别来无恙 提交于 2019-11-26 19:48:49
虚拟化容器技术:Docker 一、简介 二、安装Docker 在ubuntu下安装docker非常简单,只需要一条命令即可 sudo apt update sudo apt install -y docker.io apt安装的已经自动设置为开机自启 在centos7中使用可以使用以下命令 sudo yum update sudo yum install –y docker sudo systemctl enable docker sudo systemctl start docker #上面命令安装的docker版本是1.13.1 安装最新发行版使用以下命令 yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo yum install -y docker-ce 由于在linux下我们一般不是使用root账号登录,运行docker会有权限问题,需要对当前用户赋予docker的权限 sudo groupadd docker #创建docker用户组 sudo gpasswd -a $USER docker #将当前用户加入docker用户组

docker简介

孤街醉人 提交于 2019-11-26 19:45:11
虚拟化 什么是虚拟化   在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部份是不受现有资源的架设方式,地域或物理组态所限制。一般所指的虚拟化资源包括计算能力和资料存储。   在实际的生产环境中,虚拟化技术主要用来解决高性能的物理硬件产能过剩和老的旧的硬件产能过低的重组重用,透明化底层物理硬件,从而最大化的利用物理硬件 对资源充分利用   虚拟化技术种类很多,例如:软件虚拟化、硬件虚拟化、内存虚拟化、网络虚拟化(vip)、桌面虚拟化、服务虚拟化、虚拟机等等。 虚拟化种类 全虚拟化架构(寄居架构) 虚拟机的监视器(hypervisor)是类似于用户的应用程序运行在主机的OS之上,如VMware的workstation,这种虚拟化产品提供了虚拟的硬件。 硬件层虚拟化(裸金属架构)   硬件层的虚拟化具有高性能和隔离性,因为hypervisor直接在硬件上运行,有利于控制VM的OS访问硬件资源,使用这种解决方案的产品有VMware ESXi 和 Xen server   Hypervisor是一种运行在物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享一套基础物理硬件

极*Java速成教程 - (5)

℡╲_俬逩灬. 提交于 2019-11-26 19:05:16
Java语言基础 容器 这个世界是有序的,将Java对象零散地放到内存中是不符合世界常理的,特别是有一大组相似的甚至不知道有多少数据的时候。把Java对象装进盒子里可以有序收纳,这个盒子就叫容器。 初次了解泛型 泛型,就是泛泛而指的类型,就是不确定具体类型的类型。Java提供的容器,一般都支持泛型,也就是说不管是什么对象,都可以丢到容器中进行收纳。但在Java中,所有类都继承自Object,所以把对象当作Object对象丢到容器里不会有任何问题,但当拿出来这个Object的时候,由于不知道这个对象的真正类型是什么,就可能在向下转型的时候出现错误,为了避免这种情况,一般对容器使用 <type> 表示容器的具体类型参数,也就是容器里放什么类就确定了,编译器就会对类型进行检查,避免运行时Object对象向下转型时错误的发生。例如: List<Apple> apples = new ArrayList<Apple>(); 你应当创建一个具体类的对象,将其转型为对应的接口,然后在其余的代码中都使用这个接口。 容器的类型 Collection 一个独立元素的序列,符合某种规则,提供迭代器,可以用foreach进行迭代遍历,也就是提供一个方法,可以每次从序列中从前到后依次拿到每一个元素。 List 有序的序列,对象元素按照插入顺序保存 ArrayList 连续储存的List,可以使用数字来查找值

STL标准入门汇总【转载】

|▌冷眼眸甩不掉的悲伤 提交于 2019-11-26 18:36:46
原文: http://www.cnblogs.com/shiyangxt/archive/2008/09/11/1289493.html 第一部分:(参考百度百科) 一、 STL 简介 STL ( Standard Template Library ,标准模板库 ) 是惠普实验室开发的一系列软件的统称。它是由 Alexander Stepanov 、 Meng Lee 和 David R Musser 在惠普实验室工作时所开发出来 的。现在虽说它主要出现在 C++ 中,但在被引入 C++ 之前该技术就已经存在了很长的一段时间。 STL 的代码从广义上讲分为三类: algorithm (算法)、 container (容器)和 iterator (迭代器),几乎所有的代码都采用了模板类和模版函数的方式,这相比于传统的由函数和类 组成的库来说提供了更好的代码重用机会。在 C++ 标准中, STL 被组织为下面的 13个头文件 : <algorithm> 、 <deque> 、 <functional> 、 <iterator> 、 < vector>、 <list>、<map>、 <memory> 、 <numeric> 、 <queue> 、 <set> 、 <stack> 和 <utility> 。 二、算法

Docker 制作镜像

五迷三道 提交于 2019-11-26 17:08:05
docker镜像制作的两种方法: 1,基于docker commit 制作镜像 2,基于dockerfile制作镜像,为主流镜像制作方式。 【 基于基础镜像定制后,使用commit制作自定义镜像 】 1,使用docker commit利用运行的容器来制作自定义镜像 docker commit 容器id centos7_ifconfig #简单制作一个有ifconfig命令的镜像 2,查看制作的镜像信息 docker inspect centos7_ifconfig 3,使用自定义的镜像来启动容器 docker run -it centos7_ifconfig /bin/bash ifconfig #测试一下是否支持ifconfig命令 4,使用自定义的镜像来启动后台容器 docker run -d centos7_ifconfig /bin/bash -c 'while true;do echo hello; sleep 3; done' ★以tomcat容器为例: ▶启动 tomcat 容器 docker run -it -p 主机端口:容器端口 镜像名称 ▶修改tomcat 保存提交重命名镜像 docker commit -a=”作者” -m=”备注” 容器ID 镜像名:tag 启动新的镜像 ●例: ①连接tomcat容器:docker exec -it 容器id /bin

Docker从入门到实践

若如初见. 提交于 2019-11-26 16:58:39
一般说来 SPA 的项目我们只要启一个静态文件 Server 就可以了,但是针对传统项目就不一样了,一个项目会依赖很多服务端程序。之前我们的开发模式是在一台开发机上部署开发环境,所有人都在这台开发机上使用 Samba 连接开发。老式开发是没什么问题的,但是前端因为引入了编译流程,增加了 Webpack 打包构建的行为,当多人共同开发的时候经常会因为内存爆满进程被杀导致打包失败。痛定思痛后为了解决这个问题,我决定将 Docker 引入我们的开发环境,通过将开发环境本地化来解决这个问题,所以有了本文。 本文内容主要是概括性,详情参照文尾链接 1 也可参考视频链接 2 Why Docker? 普通的 Web 服务一般都会依赖很多程序,例如 PHP, MySQL, Redis, Node 等等。正常情况下我们会去手动安装这些程序来配置服务需要的环境,这样会带来几个问题: 同一环境不同的服务依赖同一个软件的不同版本,经典的例如 python2 和 python3, 本地 Mac 上是 PHP7,但是服务只能支持 PHP5.6。 同一环境不同的服务可能会修改同一份文件,例如系统的配置,Nginx 的配置等,都会造成影响。 同一服务在多台机器上部署需要手工操作,导致大量的人力成本浪费。 这样逐个的安装软件实在是太麻烦了,所以大家就想干脆就直接把整个系统打包好放到机器上得了,于是就出现了虚拟机技术