lxc

懂了!VMware、KVM、Docker原来是这么回事儿

China☆狼群 提交于 2020-08-06 10:32:05
云计算时代,计算资源如同小马哥当年所言,已经成为了互联网上的水和电。 虚拟主机、web服务器、数据库、对象存储等等各种服务我们都可以通过各种各样的云平台来完成。 而在云计算欣欣向荣的背后,有一个重要的功臣,那就是 虚拟化技术 。可以毫不客气的说,没有了虚拟化技术,云计算无从谈起。 说起虚拟化你会想到什么?从我们常用的虚拟机三件套VMware、VirtualPC、VirutalBox到如今大火的KVM和容器技术Docker? 这些技术是什么关系,背后的技术原理是怎样的,又有什么样的区别,各自应用的场景又是什么样的? 看完这篇文章,相信大家都能回答上面问题。 历史背景 什么是虚拟化技术? 维基百科中的解释是这样的: 虚拟化(技术)是一种资源管理技术,是将计算机的各种实体资源(CPU、内存、磁盘空间、网络适配器等),予以抽象、转换后呈现出来并可供分割、组合为一个或多个电脑配置环境。 对于一台计算机,我们可以简单的划分为三层:从下到上依次是物理硬件层,操作系统层、应用程序层 1974年,两位计算机科学家Gerald Popek 和 Robert Goldberg发表了一篇重要的论文 《虚拟化第三代体系结构的正式要求》 ,在这篇论文中提出了虚拟化的三个基本条件: 等价性 :程序在本地计算机执行和在虚拟机中执行应该表现出一样的结果(不包括执行时间的差异) 安全性 :虚拟机彼此隔离

java分布服务:我打赌,没人可以这么精短的讲出分布服务架构吧

走远了吗. 提交于 2020-08-06 04:18:37
在一个不断发展的大型应用中,新的业务需求和功能不断增加,技术也在不断演进,不同团队构建的功能子系统采用的技术架构五花八门,子系统之间的开发、部署和运维模式也存在较大差异。 如果企业内部没有统一的服务框架进行技术层面的拉通,开发和运维效率都将受到很大制约。 传统垂直架构改造的核心就是要对应用进行服务化,服务化改造用到核心技术就是分布式服务框架。 分布式服务 分布式服务顾名思义服务是分散部署在不同的机器上的,一个服务可能负责几个功能,是一种面向SOA架构的,服务之间也是通过rpc来交互或者是webservice来交互的。 逻辑架构设计完后就该做物理架构设计,系统应用部署在超过一台服务器或虚拟机上,且各分开部署的部分彼此通过各种通讯协议交互信息,就可算作分布式部署,生产环境下的微服务肯定是分布式部署的,分布式部署的应用不一定是微服务架构的。 比如集群部署,它是把相同应用复制到不同服务器上,但是逻辑功能上还是单体应用。 分布式服务架构与微服务的区别 分布式服务架构强调的是服务化以及服务的分散化,微服务则更强调服务的专业化和精细分工。 从实践的角度来看,微服务架构通常是分布式服务架构,反之则未必成立。所以,选择微服务通常意味着需要解决分布式架构的各种难题。 微服务相比分布式服务来说,它的粒度更小,服务之间耦合度更低,由于每个微服务都由独立的小团队负责,因此它敏捷性更高

Docker总结1/3---基础篇

流过昼夜 提交于 2020-07-29 06:39:19
目录 1.什么是虚拟化 2.什么是Docker 3.Docker有什么有优点 4.容器与虚拟机比较 5.Docker 组件 (1)Docker服务器与客户端 (2) Docker三大组件 Ⅰ 镜像 Ⅱ 容器 Ⅲ 注册中心 总结 1.什么是虚拟化 在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术。 抽象实体资源,进行重组。 是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组合更好的方式来应用这些资源(不受现有资源的架设方式,地域或物理组态所限制)。 一般所指的虚拟化资源包括【计算能力】和【资料存储】。 在实际的生产环境中,虚拟化技术主要用来解决高性能的物理硬件产能过剩和老的旧的硬件产能过低的重组重用,透明化底层物理硬件,从而最大化的利用物理硬件 对资源充分利用。 虚拟化技术种类示例:软件虚拟化、硬件虚拟化、内存虚拟化、网络虚拟化(vip)、桌面虚拟化、服务虚拟化、虚拟机等等。 2.什么是Docker Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。它基于 Google 公司推出的 Go 语言实现。 项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub 上进行维护。 Docker

还没弄懂 Docker 吗?万字详解让你“醍醐灌顶”

女生的网名这么多〃 提交于 2020-07-29 06:36:56
一、简介 1、了解Docker的前生LXC LXC为Linux Container的简写。可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性。相当于C++中的NameSpace。容器有效地将由单个操作系统管理的资源划分到孤立的组中,以更好地在孤立的组之间平衡有冲突的资源使用需求。 与传统虚拟化技术相比,它的优势在于: (1)与宿主机使用同一个内核,性能损耗小; (2)不需要指令级模拟; (3)不需要即时(Just-in-time)编译; (4)容器可以在CPU核心的本地运行指令,不需要任何专门的解释机制; (5)避免了准虚拟化和系统调用替换中的复杂性; (6)轻量级隔离,在隔离的同时还提供共享机制,以实现容器与宿主机的资源共享。 总结:Linux Container是一种轻量级的虚拟化的手段。 Linux Container提供了在单一可控主机节点上支持多个相互隔离的server container同时执行的机制。Linux Container有点像chroot,提供了一个拥有自己进程和网络空间的虚拟环境,但又有别于虚拟机,因为lxc是一种操作系统层次上的资源的虚拟化。 2、LXC与docker什么关系? docker并不是LXC替代品,docker底层使用了LXC来实现,LXC将linux进程沙盒化,使得进程之间相互隔离

容器概念与Linux Container原理

淺唱寂寞╮ 提交于 2020-05-02 16:21:15
一、容器与LxC    在像KVM等众多主机虚拟化解决方案中,对每一个虚拟机实例提供的是从底层硬件开始一直到上层的环境,在硬件级进行资源划分。虚拟机的内核是运行在硬件内核之上的。由于每个虚拟实例都有自己的运行内核,所以各实例之间有非常好的隔离性。   但在某些场景中使用KVM等虚拟机过于笨重,例如用户仅仅只是需要在用户空间运行某一个程序,没有必要管理用户空间内核再到系统内核,可以将用户空间内核剥离掉,直接由系统空间提供运行程序的权限即可,也就是说在一个内核空间上构建出相互隔离的空间,用一种可以将各用户空间在同一内核级中会互相产生干扰的方式隔离出来,也就是说在用户空间就做到各个空间互相隔离,这就是容器的概念。    用户空间中可以只跑一个进程,也可以在一个用户空间中跑多个进程。跑多个进程时容器的功能就类似与主机虚拟化技术,LxC就是这一种在用户空间上就相互隔离的虚拟化容器技术。而另一种容器技术中,每个用户空间只负责运行一个进程且相互隔离。这样每一个进程所依赖的环境在各个容器中的相互独立。   下面是Wiki对LXC的解释:    LXC (Linux Containers) is an operating-system-level virtualization method for running multiple isolated Linux systems (containers

Docker详解(一)— 入门

我们两清 提交于 2020-05-02 04:15:29
[TOC] 序言:众所周知,近几年的互联网各项技术发展的如火如荼,敏捷开发模式越来越普及,“快”似乎成为了行业的标准,于是颓势了十几年的 devops理念重新被提及,CICD 也逐渐泛化。当然这些或多或少会有 docker 的影子。我想如果 没有 docker 的横空出世,这些实现起来似乎有些困难 ##Docker简介 是什么 :有助于持续集成和部署的 <u>容器虚拟化技术</u>,运行环境和配置的标准化解决方案。 docker官网 可能大家都听过虚拟机技术,那么虚拟机技术和容器虚拟化技术有何区别? 虚拟机技术 :虚拟机是带环境安装的一种解决方案,它可以在操作系统里面运行另一种操作系统。以操作系统为中心,从操作系统层下手,目标是建立一个可以用来执行整套操作系统的沙盒独立执行环境。 缺点:资源占用较多,启动较慢,操作步骤较为繁杂。 容器虚拟化技术 :由于前面虚拟机存在这些缺点,Linux 发展出了另一种虚拟化技术:Linux 容器(Linux Containers,缩写为 LXC)。 以应用程序为中心,隔离进程,共享操作系统内核,只需工作软件所需库资源的设置。 Docker组成 docker的基本组成 镜像(image):Docker镜像就是一个只读的模板。镜像可以用来创建Docker容器,一个镜像可以创建很多容器。 容器(container):Docker 利用容器

IAAS-libvirt介绍。

二次信任 提交于 2020-05-01 03:42:50
Libvirt介绍 Libvirt 与 hypervisor 无关,其提供与多种操作系统虚拟化能力进行交互的 API 与工具库。 Libvirt 提供了一个通用稳定的抽象层,可以安全的操作物理机上的虚拟机,同时为了可以远程交互, Libvirt 在 hypervisor 支持的范围内提供了创建,修改,监控,迁移,停止 domain 的一系列 API ,虽然可以使用 Libvirt 同时访问多个物理机,但是 API 层做了限制,只允许访问单个物理机。 Libvirt 被设计为可以支持多种虚拟化环境,这意味着大部分通用的能力在 API 上是被支持的,也因为此,在于通用型之间为了平衡,一些特殊的能力是不被支持的,譬如不支持虚拟化的告警策略或者多节点管理,不过 API 的稳定性确保这些特性可以在 Libvirt 实现。为了保持这种稳定性, Libvirt 视图隔离这些虚拟化框架中频繁变更的应用。 Libvirt 意在作为单虚拟化节点上的高级管理工具和应用,唯一例外的是虚拟机在多个物理机的迁移能力。提供了一系列 API 用来定义,监控,和使用管理节点的资源,这些资源包括 cpu , memory , storage , network 以及 NUMA 分区,虽然一个单独的物理机可以被管理程序分配一个管理节点,但是这应该确保使用安全的协议来操作。 术语定义: 术语 定义 Domain 运行在被

干货满满!10分钟看懂Docker和K8S(转)

本小妞迷上赌 提交于 2020-04-24 23:25:54
2010年,几个搞IT的年轻人,在美国旧金山成立了一家名叫“dotCloud”的公司。 这家公司主要提供基于PaaS的云计算技术服务。具体来说,是和LXC有关的容器技术。 LXC,就是Linux容器虚拟技术(Linux container) 后来,dotCloud公司将自己的容器技术进行了简化和标准化,并命名为——Docker。 Docker技术诞生之后,并没有引起行业的关注。而dotCloud公司,作为一家小型创业企业,在激烈的竞争之下,也步履维艰。 正当他们快要坚持不下去的时候,脑子里蹦出了“开源”的想法。 什么是“开源”?开源,就是开放源代码。也就是将原来内部保密的程序源代码开放给所有人,然后让大家一起参与进来,贡献代码和意见。 Open Source,开源 有的软件是一开始就开源的。也有的软件,是混不下去,创造者又不想放弃,所以选择开源。自己养不活,就吃“百家饭”嘛。 2013年3月,dotCloud公司的创始人之一,Docker之父,28岁的Solomon Hykes正式决定,将Docker项目开源。 Solomon Hykes(今年刚从Docker离职) 不开则已,一开惊人。 越来越多的IT工程师发现了Docker的优点,然后蜂拥而至,加入Docker开源社区。 Docker的人气迅速攀升,速度之快,令人瞠目结舌。 开源当月,Docker 0.1版本发布。此后的每一个月

架构师修炼之微服务部署

十年热恋 提交于 2020-04-23 22:33:32
Docker简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker动手实验平台: Play with Docker 。 Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,它是基于 dotCloud 公司多年云服务技术的一次革新,并于2013 年 3 月以 Apache 2.0 授权协议开源,主要项目代码在 GitHub 上进行维护。Docker 项目后来还加入了 Linux 基金会,并成立推动开放容器联盟(OCI)。 Docker 自开源后受到广泛的关注和讨论,至今其 GitHub 项目已经超过 4 万 6 千个星标和一万多个 fork。甚至由于 Docker 项目的火爆,在 2013 年底,dotCloud 公司决定改名为 Docker。Docker 最初是在 Ubuntu 12.04 上开发实现的;Red Hat 则从 RHEL 6.5 开始对 Docker 进行支持;Google 也在其 PaaS 产品中广泛应用 Docker。 Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux

10分钟看懂Docker和K8S

自闭症网瘾萝莉.ら 提交于 2020-04-23 14:34:17
本文来源:鲜枣课堂 2010年,几个搞IT的年轻人,在美国旧金山成立了一家名叫“dotCloud”的公司。 这家公司主要提供基于PaaS的云计算技术服务。具体来说,是和LXC有关的容器技术。 LXC,就是Linux容器虚拟技术(Linux container) 后来,dotCloud公司将自己的容器技术进行了简化和标准化,并命名为——Docker。 Docker技术诞生之后,并没有引起行业的关注。而dotCloud公司,作为一家小型创业企业,在激烈的竞争之下,也步履维艰。 正当他们快要坚持不下去的时候,脑子里蹦出了“开源”的想法。 什么是“开源”?开源,就是开放源代码。也就是将原来内部保密的程序源代码开放给所有人,然后让大家一起参与进来,贡献代码和意见。 Open Source,开源 有的软件是一开始就开源的。也有的软件,是混不下去,创造者又不想放弃,所以选择开源。自己养不活,就吃“百家饭”嘛。 2013年3月,dotCloud公司的创始人之一,Docker之父,28岁的Solomon Hykes正式决定,将Docker项目开源。 Solomon Hykes(今年刚从Docker离职) 不开则已,一开惊人。 越来越多的IT工程师发现了Docker的优点,然后蜂拥而至,加入Docker开源社区。 Docker的人气迅速攀升,速度之快,令人瞠目结舌。 开源当月,Docker 0