docker--docker介绍
2 docker 介绍
2.1 容器技术
在计算机的世界中,容器拥有一段漫长且传奇的历史。容器与管理程序虚拟化 (hypervisor virtualization,HV)有所不同,管理程序虚拟化通过中间层将一台或者多 台独立的机器虚拟运行与物理硬件之上,而容器则是直接运行在操作系统内核之上的用 户空间。因此,容器虚拟化也被称为“操作系统级虚拟化”,容器技术可以让多个独立的用 户空间运行在同一台宿主机上。
由于 “客居”于操作系统,容器只能运行与底层宿主机相同或者相似的操作系统,这看起来 并不是非常灵活。例如:可以在Ubuntu服务中运行Redhat Enterprise Linux,但无法再 Ubuntu服务器上运行Microsoft Windows。 相对于彻底隔离的管理程序虚拟化,容器被认为是不安全的。而反对这一观点的人则认 为,由于虚拟容器所虚拟的是一个完整的操作系统,这无疑增大了攻击范围,而且还要 考虑管理程序层潜在的暴露风险。 尽管有诸多局限性,容器还是被广泛部署于各种各样的应用场合。在超大规模的多租户 服务部署、轻量级沙盒以及对安全要求不太高的隔离环境中,容器技术非常流行。最常 见的一个例子就是“权限隔离监牢”(chroot jail),它创建一个隔离的目录环境来运行进 程。如果权限隔离监牢正在运行的进程被入侵者攻破,入侵者便会发现自己“身陷囹圄”, 因为权限不足被困在容器所创建的目录中,无法对宿主机进一步破坏。 最新的容器技术引入了OpenVZ、Solaris Zones以及Linux容器(LXC)。使用这些新技 术,容器不在仅仅是一个单纯的运行环境。在自己的权限类内,容器更像是一个完整的 宿主机。容器和宿主机之间的隔离更加彻底,容器有独立的网络和存储栈,还拥有自己 的资源管理能力,使得同一台宿主机中的多个容器可以友好的共存。 容器被认为是精益技术,因为容器需要的开销有限。和传统虚拟化以及半虚拟化相比, 容器不需要模拟层(emulation layer)和管理层(hypervisor layer),而是使用操作系 统的系统调用接口。这降低了运行单个容器所需的开销,也使得宿主机中可以运行更多 的容器。 尽管有着光辉的历史,容器仍未得到广泛的认可。一个很重要的原因就是容器技术的复 杂性:容器本身就比较复杂,不易安装,管理和自动化也很困难。而Docker就是为了改 变这一切而生的。
2.2 docker 介绍
Docker is an open platform for developing, shipping, and running applications. Docker enables you to separate your applications from your infrastructure so you can deliver software quickly. With Docker, you can manage your infrastructure in the same ways you manage your applications. By taking advantage of Docker’s methodologies for shipping, testing, and deploying code quickly, you can significantly reduce the delay between writing code and running it in production. Docker 是一个开发,运输和运行应用程序的开放平台。 Docker使您可以将应用程序与基 础架构分离,以便快速交付软件。 使用Docker,您可以像管理应用程序一样管理基础架 构(OS)。 通过利用Docker的方法快速发送,测试和部署代码,您可以显着减少编写代 码和在生产中运行代码之间的延迟。(代码改了)
2.3 docker 好处
容器提供了隔离性,结论是,容器可以为各种测试提供很好的沙盒环境。并且,容器本 身就具有“标准性”的特征,非常适合为服务创建构建块。Docker的一些应用场景如下:
加速本地开发和构建流程,使其更加高效、更加轻量化。本地开发人员可以构建、运 行并分享Docker容器。容器可以在开发环境中构建,然后轻松的提交到测试环境 中,并最终进入生产环境。 开发人员与运维人员进行职责的逻辑分离
能够让独立的服务或应用程序在不同的环境中,得到相同的运行结果。这一点在面向 服务的架构和重度依赖微型服务的部署由其实用。
用 Docker创建隔离的环境来进行测试。例如,用Jenkins CI这样的持续集成工具启动 一个用于测试的容器。(持续化集成 war 实际部署:jenkins持续化集成 Jenkins+git )
Docker 可以让开发者先在本机上构建一个复杂的程序或架构来进行测试,而不是一 开始就在生产环境部署、测试。
构建一个多用户的平台即服务( PaaS)基础设施
为开发、测试提供一个轻量级的独立的沙盒环境
提供软件即服务( SaaS)应用程序,例如Memcached即服务
高性能、超大规模的宿主机部署(可以很多容器)
沙盒:在计算机安全领域,沙盒(英语:sandbox,又译为沙箱)是一种安全机制,为运行
中的程序提供的隔离环境。通常是作为一些来源不可信、具破坏力或无法判定程序意图的程
序提供实验之用。
2.4 集装箱思想
Docker借鉴了标准集装箱的概念。标准集装箱将货物运往世界各地,Dock将这个模型运 用到自己的设计中,唯一不同的是:集装箱运输货物,而Docker运输软件、应用程序。 和集装箱一样,Docker在执行上述操作时,并不关心容器中到底装了什么,它不管是 web服务器,还是数据库,或者是应用程序服务器什么的。所有的容器都按照相同的方 式将内容“装载”进去。 Docker也不关心你要把容器运到何方:我们可以在自己的笔记本中构建容器,上传到 Registry,然后下载到一个物理的或者虚拟的服务器来测试,在把容器部署到具体的主机 中。像标准集装箱一样,Docker容器方便替换,可以叠加,易于分发,并且尽量通用。
2.5 container 与vm区别
物理机:一栋楼一户人家独立地基,独立花园
虚拟机:一栋楼包含多套房一套房一户人家,共享地基,共享花园,独立卫生间、厨房和宽带
容器:最大化的利用资源。
一栋楼包含多套房一套房一户人家,共享地基,共享花园,独立卫生间、厨房和宽带
通过上面这三张抽象图,我们大概可以通过类比概括出: 容器虚拟化的是操作系统而不 是硬件,容器之间是共享同一套操作系统资源的。虚拟机技术是虚拟出一套硬件后,在 其上运行一个完整操作系统。 容器和虚拟机具有相似的资源隔离和分配优势,但功能有所不同,因为容器虚拟化的是 操作系统,而不是硬件,因此容器更容易移植,效率也更高。 容器在Linux上本机运行,并与其他容器共享主机的内核。 它运行一个独立的进程,不占 用任何其他可执行文件的内存,使其轻量级。相比之下,虚拟机(VM)运行一个完整 的“客户”操作系统,通过虚拟机管理程序对主机资源进行虚拟访问。 通常,VM提供的环 境比大多数应用程序需要的资源更多。
2.6 虚拟机已死 容器才是未来
容器是一个应用层抽象,用于将代码和依赖资源打包在一起。 多个容器可以在同一 台机器上运行,共享操作系统内核,但各自作为独立的进程在用户空间中运行 。与 虚拟机相比, 容器占用的空间较少(容器镜像大小通常只有几十兆),瞬间就能完 成启动 。
虚拟机( VM)是一个物理硬件层抽象,用于将一台服务器变成多台服务器。 管理程 序允许多个VM在一台机器上运行。每个VM都包含一整套操作系统、一个或多个应 用、必要的二进制文件和库资源,因此占用大量空间。而且VM启动也十分缓慢 。
docker--docker介绍的更多相关文章
- Docker简单介绍
Docker简单介绍 Docker是一个能够把开发的应用程序非常方便地部署到容器的开源引擎.由Docker公司团队编写,基于Apache 2.0开源授权协议发行.Docker的主要目的例如以下: 提供 ...
- Docker Swarm 介绍 or 工作原理
Docker Swarm 介绍 Swarm 简介 Swarm是Docker公司自研发的容器集群管理系统,Swarm在早期是作为一个独立服务存在,在Docker Engine v1.12中集成了Swar ...
- 学习Mysql过程中拓展的其他技术栈:Docker入门介绍
一.Docker的介绍和安装 1. Docker是什么 百度百科的介绍: Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linu ...
- docker的介绍以及常用命令
一.docker的介绍 1. Docker是什么? Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚 ...
- Docker 技术 介绍
https://github.com/docker/docker 实现用户空间隔离的技术:名称空间(NameSpace),CGroup(控制组) 什么是NameSpace::简单的理解就是,每一个虚拟 ...
- Docker系列一:Docker的介绍和安装
Docker介绍 Docker是指容器化技术,用于支持创建和实验Linux Container.借助Docker,你可以将容器当做重量轻.模块化的虚拟机来使用,同时,你还将获得高度的灵活性,从而实现对 ...
- Docker 容器介绍
Docker 容器介绍 Docker 是一个基于 Go 语言的开源应用容器引擎,它既能实现虚拟化,又可用于将应用服务打包成轻量.可移植的容器,从而可以发布到任何 Linux 平台.除了优秀了沙箱机制外 ...
- Docker入门-介绍和安装
Docker容器 Docker是什么 Docker最初是dotCloud公司创建人Solomon Hykes在法国期间发起的一个公司内部项目,它是基于dotCloud公司多年云服务技术的一次革新,并于 ...
- Docker的介绍与安装教程
基于Windows系统下docker的介绍与安装教程以及更换docker镜像源教程 目录 基于Windows系统下docker的介绍与安装教程以及更换docker镜像源教程 Docker的核心概念 D ...
- Docker 入门介绍
Docker是什么 从发布到现在 docker一直很受关注,在一定程度是改变了软件行业 如果你还不知道 docker 是什么是不是有点out了,接下来我们来介绍docker是什么,解决了什么问题,好处 ...
随机推荐
- Linux架构之Nginx之HTTPS
第52章 Nginx之HTTPS 第52章 Nginx之HTTPS 1.HTTPS安全证书基本概述 1.1 模拟服务器篡改内容 1.1.1 配置目标网站nginx 1.1.2 配置网页 1.1.3 访 ...
- vb中的资源文件
--- 一.VB中资源文件的分类 ---- 通常将资源分为两类:1.字符串资源,包括菜单和文本中使用的字符串,如"Hello World"等:2.二进制资源,如位图(.BMP),图 ...
- MUI使用h5+进行召唤各大APP应用市场调用启动的包名和方式
转载自:https://blog.csdn.net/u012442504/article/details/87367153 // 扩展API加载完毕后调用onPlusReady回调函数 documen ...
- adam优化
AdaGrad (Adaptive Gradient,自适应梯度) 对每个不同的参数调整不同的学习率, 对频繁变化的参数以更小的步长进行更新,而稀疏的参数以更大的步长进行更新. gt表示第t时间步的梯 ...
- Flutter-使用Dialog時出現No MaterialLocalizations found
在显示SimpleDialog时候程序报错 No MaterialLocalizations found 没有找到 MaterialLocalizations 搜索找到原因 runApp 需要先调用 ...
- 唤醒 App
一.Deep Link 1.什么是 Deep Link? Deep Link 是 App 的深度连接,当单击链接或编程请求调用Web URI意图时,Android系统按顺序依次尝试以下每一个操作,直到 ...
- DevExpress 2019 .NET产品现已完全支持Visual Studio 2019
[DevExpress v18.2.8最新版免费下载] 我们非常高兴地跟宣布DevExpress .NET产品现已完全支持Visual Studio 2019.如果您是DevExpress忠实用户,可 ...
- 在目标端重建sequence的脚本
select 'create sequence '||SEQUENCE_OWNER||'.'||sequence_name|| ' minvalue '||min_value|| ' maxvalue ...
- hashcode 和 equals
https://www.cnblogs.com/Qian123/p/5703507.html#_label0 hashCode是jdk根据对象的地址或者字符串或者数字算出来的int类型的数值 详细了解 ...
- git-shell设置代理
Configure Git to use a proxy ##In Brief You may need to configure a proxy server if you're having tr ...